24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1652  |  回复: 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的回帖

czmsina

铁虫 (初入文坛)

引用回帖:
8楼: Originally posted by csgt0 at 2012-07-05 11:13:18
或者你这样吧,简单点
clc
clear
R=3%12;
C=4%16;
t=0;
for k=1R*C)
      for i=1:R
         for j=1:C
             t=t+1;
             GRIDTemp=ones(R,C);
             if (i-1)>=1
   ...

您给我的这段代码循环出来是144行,而我需要的只是12行,而且这12行的结果也是正确的,实际上就是这12行又循环了12次!
10楼2012-07-06 14:16:10
已阅   回复此楼   关注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的回帖
信息提示
请填处理意见