Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-03-29
年龄: 38
帖子: 4
声望力: 0 ![]() |
![]()
我想要在一个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.我不知道错在哪里,在线等待高手指教。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-04-22
帖子: 8
声望力: 0 ![]() |
![]()
对 i+60 和 j+200 要进行条件限制,数据在同一行和不同行的程序实现是不一样的。你再调试调试,把 x(i)。。。那句后面的分号去掉,可以在命令窗口看到x的变化过程。
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-03-29
年龄: 38
帖子: 4
声望力: 0 ![]() |
![]()
问题解决了:
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; |
![]() |
![]() |