Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-04-22, 19:02   #1
likeus
初级会员
 
注册日期: 2008-03-29
年龄: 38
帖子: 4
声望力: 0
likeus 正向着好的方向发展
默认 [求助]如何在矩阵中提取连续的子矩阵

我想要在一个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.我不知道错在哪里,在线等待高手指教。
likeus 当前离线   回复时引用此帖
旧 2008-04-22, 21:37   #2
shenglwan
初级会员
 
注册日期: 2008-04-22
帖子: 8
声望力: 0
shenglwan 正向着好的方向发展
默认

对 i+60 和 j+200 要进行条件限制,数据在同一行和不同行的程序实现是不一样的。你再调试调试,把 x(i)。。。那句后面的分号去掉,可以在命令窗口看到x的变化过程。
shenglwan 当前离线   回复时引用此帖
旧 2008-04-23, 19:42   #3
likeus
初级会员
 
注册日期: 2008-03-29
年龄: 38
帖子: 4
声望力: 0
likeus 正向着好的方向发展
默认

问题解决了:
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;
likeus 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]曲线拟合 北斗 MATLAB论坛 4 2008-05-05 07:23


所有时间均为北京时间。现在的时间是 12:46


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.