我的问题是我的代码出了什么问题,结果应该在第一张图片中,而不是第二张。

1次观看(过去30天)
D = 0 (6);
行= 1:6
坳= 1:6
如果col>行%右上角
D(行,坳)= 0
Else if col==row %对角线
D(行,坳)= 0
否则如果行>col %左下角
如果mod(row,2) ==0 && col==1
D(行,1)=第一行
如果mod(row,2)==0 && mod(col,2) ==1 && col>=3
D(行,坳)=(第1行)* 2
如果mod(row,2) ==1 && mod(col,2) ==0
D(行,坳)=(第1行)* 2
结束
结束
结束
结束
结束
结束
结束
结束

接受的答案

大卫Goodmanson
大卫Goodmanson 2021年9月30日
编辑:大卫Goodmanson 2021年9月30日
嗨jana,
问题是if语句
如果Mod (row,2)==0 && Mod (col,2) ==1 && col>=3% (b)
而且
如果Mod (row,2) ==1 && Mod (col,2) ==0% (c)
都包含在
如果Mod (row,2) ==0 && col==1% ()
.......
.......
结束
而且它们的条件与(a)相冲突,所以它们永远不会被执行。如果对(b)和(c)都将' If '更改为'elseif',然后在结尾去掉两个突然出现的无关的结束语句,它就可以工作。
2的评论
大卫Goodmanson
大卫Goodmanson 2021年9月30日
嗨,jana,我忘了说,没有必要做for循环,将右上角设置为零,因为你的D的预分配已经使它们为零。

登录评论。

更多答案(0)

类别

了解更多循环和条件语句帮助中心而且文件交换

下载188bet金宝搏

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!