lpp8515 发表于 2010-6-28 21:28

有关matlab的编程问题,可以运行,但是结果是错的!

矩阵D:
Ln=;
A=cell(1,10);
for j=1:10:100, for i=1:291
   if(sum(D(i:i+9,j:j+9)==Ln(1,((j-1)/10+1))))
      A{1,((j-1)/10+1)}=D(i:i+9,j:j+9);
   end
end; end
B=cell2mat(A);
上述程序中,D是一个300*100的矩阵,上述程序是为了实现如下功能:
D从1到300行,1到10列,如果有任意10*10的区域数值之和为97即Ln(1),就将这个区域的数值保存在A中;
然后再查找D从1到300行,11到20列的数值,如果有任意10*10的区域数值之和为79即Ln(2),将这个区域的数值保存在A中,直到将所有列查找完毕
以上是我写的程序,可以运行,没有错误提示,结果是A中为空,不知道错误出了哪里?还望高手指点!这里的矩阵D是用随机函数生成的,并且满足Ln这些数值的分布。

[ 本帖最后由 ChaChing 于 2010-6-29 09:18 编辑 ]

re-us 发表于 2010-6-28 23:00

改成:
if(sum(sum(D(i:i+9,j:j+9)))==Ln(1,((j-1)/10+1)))
页: [1]
查看完整版本: 有关matlab的编程问题,可以运行,但是结果是错的!