array manipulation - a few basic questions

Hi, I have to do a bit of array manipulation and I really don't have a clue about it.
First I need to know how to take a double array, and turn it in to a 2046x1 array (twice as long), with 1024-2046 just being exactly the same as 1-1023.
Then I need to know how to chop off the first half of an array, in this case taking a 2046x1 array and disregarding the first 1-1023, leaving only a 1023x1 array made up from only the second half of the 2046x1 array.
I know it's simple stuff, but I just haven't done it before.

1 Commento

Tom's question
Hi, I have to do a bit of array manipulation and I really don't have a clue about it.
First I need to know how to take a double array, and turn it in to a 2046x1 array (twice as long), with 1024-2046 just being exactly the same as 1-1023.
Then I need to know how to chop off the first half of an array, in this case taking a 2046x1 array and disregarding the first 1-1023, leaving only a 1023x1 array made up from only the second half of the 2046x1 array.
I know it's simple stuff, but I just haven't done it before.

Accedi per commentare.

 Risposta accettata

Please try:
x = rand(1023,1);
y = repmat(x,2,1);
z = y(1024:2046);
HTH.
Rick

6 Commenti

Or: y = [x; x];
or: y = vertcat(x, x);
Or: z = y(1024:end);
I avoid the END in indexing expressions in general. There have been several bugs in nested expressions and it is "slower" than "1024:numel(y)" - if one could claim that micro-seconds matter.
Many thanks guys - all useful.
I guessed that z = y(numel(x)+1:numel(y)); would work too. That make sense?
Yes, at least in this particular case, but not generally.

Accedi per commentare.

Più risposte (0)

Prodotti

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by