Rearrangement of vector elements

2 visualizaciones (últimos 30 días)
Dc
Dc el 8 de Abr. de 2021
Comentada: Jan el 8 de Abr. de 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.

Respuestas (2)

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

Jan
Jan el 8 de Abr. de 2021
Editada: Jan el 8 de Abr. de 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 comentarios
Dc
Dc el 8 de Abr. de 2021
Could you please explain how the rearrangement occurs, since I am not very familiar with using logical arguments? As far as I understand your code, you create a matrix "match" of logical zeros with the same size as b and then assign to the values tha need to be moved a logical 1. I don't quite understand the "c=b(match)" and how it moves the elements in the desired way.
Thanks in advance.
Jan
Jan el 8 de Abr. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by