24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1655  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

czmsina

铁虫 (初入文坛)

[求助] matlab中if循环不起来,请求大牛帮助!

我matlab中写了一段if循环语句,显示的却只是最后一次循环得到的结果检查不出错误在哪,还请高手指点一下,不胜感激。
下面是我的代码:
R=12
C=16
for k=1R*C)
for i=1:R
for j=1:C
GRIDTemp=ones(R,C);
if (i-1)>=1
    GRIDTemp(i-1,j)=0;
end
if (j-1)>=1
    GRIDTemp(i,j-1)=0;
end
if (j+1)<=C
    GRIDTemp(i,j+1)=0;
end
if (i+1)<=R
    GRIDTemp(i+1,j)=0;
end
end
end
ATemp(k,=reshape(GRIDTemp',1,R*C);
end
A0=ATemp
我本来是想把每次迭代得到的GRIDTemp的结果分别放到A0中,
可实际A0只是最后一次迭代的GRIDTemp的结果,不清楚该怎么去修改!
谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖


dbb627: 金币+1, 感谢应助 2012-07-03 20:33:44
不确定你要获得什么结果,你这样的循环是每个k,i,j都有一个GRIDTemp,但是对于每一个k只有最后一个也就是i=R,j=C那个GRIDTemp赋给了Atemp(k),其他的GRIDTemp都没有使用。如果每个k只有一个GRIDTemp,那么将其初始化放在k循环下,再在不同的i和j下对其部分值进行修改(这时也可能不需要i,j的循环了,使用矩阵操作)。如果确实有那么多GRIDTemp要使用,那么将它定义为一个多维数组。
showmethemoney
5楼2012-07-03 17:03:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

czmsina

铁虫 (初入文坛)

dbb627: 编辑内容 2012-07-03 20:33
重新粘一下代码
CODE:
R=12
C=16
for k=1:(R*C)
for i=1:R
for j=1:C
GRIDTemp=ones(R,C);
if (i-1)>=1
    GRIDTemp(i-1,j)=0;
end
if (j-1)>=1
    GRIDTemp(i,j-1)=0;
end
if (j+1)<=C
    GRIDTemp(i,j+1)=0;
end
if (i+1)<=R
    GRIDTemp(i+1,j)=0;
end
end
end
ATemp(k,:)=reshape(GRIDTemp',1,R*C);
end
A0=ATemp

[ Last edited by dbb627 on 2012-7-3 at 20:33 ]
2楼2012-07-03 15:52:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

czmsina

铁虫 (初入文坛)

不知道怎么了,粘后有错误,都是冒号
3楼2012-07-03 15:54:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
没什么问题啊,除了程序写的有点繁琐。A的每一列就是你的每次的结果啊,你给它变成行向量了
showmethemoney
4楼2012-07-03 16:50:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见