MATLAB LOOPS:将大数组中的值插入到小数组中

时间:2015-10-29 17:50:41

标签: matlab loops

我有一个名为signal的矢量,由300001个值组成。在for循环的每次迭代中,我想从这个向量中获取2000个连续值并将其存储在另一个向量X中(X是1 * 2000向量) 代码如下:

D = 1:300001;
A = zeros(1,2000);
r=1;
n=0;
m=1;

for i=1:300001
   for p = (1+(2000*n)):(r*2000) 
        while m<2000
        A(1,m)= signal(1,p);
        %disp (m);
        m = m+1; 
        end

   end
r = r+1;
n = n+1; 
m = 1;

end

但是它给了我错误&#34;索引超出矩阵维度。 有人可以通过更好的方式帮助我吗?

1 个答案:

答案 0 :(得分:0)

这会起作用

signal = ones(1,30000);
index1= 1:2000:length(signal);
index2= 2000:2000:length(signal);


for i=1:length(index1)
   A = signal(index1(i):index2(i));
end

或者

signal = ones(1,30000);
temp = reshape(signal,2000,[]);
for i = 1:size(temp,2)
    A=temp(:,i);
end