HLjian 发表于 2009-4-17 16:25

按回车没有结果?

初学Matlab,不知道下面的错在那里,望高人指点。
这是一个程序的简化部分,按回车没有结果。应该是if语句出错。
m=9;
n=15;
po=zeros(m,n);
p=zeros(m,n);
for k=1:10
    for i=2:m-1
      for j=1:n
            if j==1
            p(i,j)=po(i+1,j)+po(i-1,j)+po(i,j+1)+po(i,n-1)+0.5;
            
            else if j==n
            p(i,j)=po(i+1,j)+po(i+1,j)+po(j,2)+po(i,n-1)+0.5;
            else
          p(i,j)=po(i+1,j)+po(i-1,j)+po(i,j+1)+po(i,j-1)+0.5;
         end
         end
      end
    po=p;
    end
如果不要if语句,可以计算出来,但每行上的数值都是相等的,不是我想要的结果。
m=9;
n=15;
po=zeros(m,n);
p=zeros(m,n);
for k=1:10
    for i=2:m-1
      for j=2:n-1
            
          p(i,1)=po(i+1,1)+po(i-1,1)+po(i,2)+po(i,14)+0.5;
         
            
          p(i,15)=po(i+1,15)+po(i-1,15)+po(i,2)+po(i,14)+0.5;
         
          p(i,j)=po(i+1,j)+po(i-1,j)+po(i,j+1)+po(i,j-1)+0.5;
      
         end
      end
    po=p;
    end

[ 本帖最后由 ChaChing 于 2009-4-19 11:28 编辑 ]

ChaChing 发表于 2009-4-19 00:06

少个end嘛! LZ是否直接在command window下命令, 按回车没有结果, 因为语句未结束!

若LZ将程序存成m-script後执行, 就会有如下报错!
??? Error: File: zzz1.m Line: 5 Column: 1
At least one END is missing: the statement may begin here.

但注意 elseif与else if是不同的! 具体视LZ要那个!

还有习惯要养好! 同一loop对齐就很容易发现少end!

[ 本帖最后由 ChaChing 于 2009-4-19 00:08 编辑 ]

HLjian 发表于 2009-4-19 22:11

非常感谢了
页: [1]
查看完整版本: 按回车没有结果?