MATLAB Answers

Rearrangement of vector elements

39 views (last 30 days)
Dc
Dc on 8 Apr 2021
Commented: Jan on 8 Apr 2021
Hello everyone,
I have a vector that contains 1252459 elements and I need to rearrange these elements so that every 250th and 251nd element become the last elements of the vector. To be more clear, if the initial vector is
b=[1st element; 2nd element;...; 250th element; 251st element; ...; 500th element; 501st element;...;1252459th element]
it has to become
b=[1st element; 2nd element; ... (every element that should not be moved here) ... ; former 250th element; former 251st element; former 500th element; former 501st element; former 750th element ; former 751st element;...]
Thanks in advance.

Answers (2)

Fangjun Jiang
Fangjun Jiang on 8 Apr 2021
something like this?
a=(1:95)'
b=reshape(a,19,[])
c=b(1:11,:)
d=c(:)

Jan
Jan on 8 Apr 2021
Edited: Jan on 8 Apr 2021
Maybe you want:
b = rand(1252459, 1);
match = false(size(b));
match(1:249:end) = true;
match(2:249:end) = true;
c = b(match);
  2 Comments
Jan
Jan on 8 Apr 2021
Try it with some smaller data:
x = 11:20
m = false(size(x))
m([2,4,6]) = true
x(m)
m contains FALSE values except for the 2nd, 4th and 6th value, which are true. Using this vector as "logical index", only the elements are replied, which have a TRUE inside the index vector.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!