登录论坛

查看完整版本 : [求助]如何在矩阵中提取连续的子矩阵


likeus
2008-04-22, 19:02
我想要在一个600*800的矩阵中,从第一个像素起,提取一个60*200的子矩阵,将其存储起来,然后从第二个像素开始,接着提取60*200的子矩阵,也存储起来,如此进行到最后。形象一点说就是用一个60*200的框(区域)沿着大矩阵从头走到尾,每挪动一下记录一次框里的矩阵。
我自己编的程序是:A=rand(600,800);
x=zeros(60,200);
for i=1:600
for j=1:800
x(i)=A(i:i+60;j:j+200);
end
end

红色的部分是错的,警报说Incomplete or misformed expression or statement.我不知道错在哪里,在线等待高手指教。

shenglwan
2008-04-22, 21:37
对 i+60 和 j+200 要进行条件限制,数据在同一行和不同行的程序实现是不一样的。你再调试调试,把 x(i)。。。那句后面的分号去掉,可以在命令窗口看到x的变化过程。

likeus
2008-04-23, 19:42
问题解决了:
r=60;
c=190;
for i=1:600-r+1
for j=1:800-c+1
temp=Blue(i:i+r-1,j:j+c-1);
a(i,j)=sum(sum(temp));
end;
end;