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 个评论

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.

请先登录,再进行评论。

 采纳的回答

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

6 个评论

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.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

产品

标签

Community Treasure Hunt

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

Start Hunting!

Translated by