我有一个名为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;索引超出矩阵维度。 有人可以通过更好的方式帮助我吗?
答案 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