24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1790  |  回复: 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

铁虫 (初入文坛)

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的回帖

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的回帖

czmsina

铁虫 (初入文坛)

引用回帖:
5楼: Originally posted by csgt0 at 2012-07-03 17:03:03
不确定你要获得什么结果,你这样的循环是每个k,i,j都有一个GRIDTemp,但是对于每一个k只有最后一个也就是i=R,j=C那个GRIDTemp赋给了Atemp(k),其他的GRIDTemp都没有使用。如果每个k只有一个GRIDTemp,那么将其初 ...

确实是每个k都值得到了最后一次的结果,我是想把每次的结果都提出来!
6楼2012-07-05 10:23:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

引用回帖:
6楼: Originally posted by czmsina at 2012-07-05 10:23:12
确实是每个k都值得到了最后一次的结果,我是想把每次的结果都提出来!...

如果每次k,i,j的循环都需要得到一个GRID的话,也就是共(R*C)*R*C个GRID的话,那你把它用成多维数组就可以了,比如用GRIDTemp(k,i,j,:,=ones(R,C);然后后面的修改为0的方式不变,最后在循环里面赋给一个A(k,i,j,,最后依次把这里的A的每一层拨出来。但是我觉得你应该要的不是这样的结果。
showmethemoney
7楼2012-07-05 11:06:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

或者你这样吧,简单点
CODE:
clc
clear
R=3%12;
C=4%16;
t=0;
for k=1:(R*C)
      for i=1:R
         for j=1:C
             t=t+1;
             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
              ATemp(t,:)=reshape(GRIDTemp',1,R*C);
         end
     end
end  
  
A0=ATemp

showmethemoney
8楼2012-07-05 11:13:18
已阅   回复此楼   关注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
   ...

很感谢您的耐心啊!不过这个循环好像比我要的结果多很多。
每次i,j都会得到一个GRIDTemp(R行C列的矩阵),k的循环是把每次的GRIDTemp矩阵转化为ATemp的一行,最终的ATemp应该是R*C行,R*C列的新矩阵。
自己也试着改了多次都没有成功!还是很感谢您的热心!
9楼2012-07-06 14:09:39
已阅   回复此楼   关注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的回帖
相关版块跳转 我要订阅楼主 czmsina 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 283分求调剂 +9 试试看呗 2026-04-04 9/450 2026-04-05 10:27 by 果冻大王
[考研] 277求调剂 +4 12A3 2026-04-02 5/250 2026-04-04 20:28 by 蓝云思雨
[考研] 一志愿上海大学生物学346 +3 上海大学346调剂 2026-04-03 3/150 2026-04-04 20:20 by dongzh2009
[考研] 一志愿安徽某211 0703化学总分339求调剂 +6 晚风不晚 2026-04-04 6/300 2026-04-04 20:11 by dongzh2009
[考研] 求调剂 +3 ffyyu 2026-04-02 3/150 2026-04-04 19:03 by 蓝云思雨
[考研] 怎么删帖子啊 +3 缝曦1000 2026-04-04 3/150 2026-04-04 14:20 by 土木硕士招生
[考研] 材料295 +13 小英11 2026-04-03 14/700 2026-04-04 09:02 by 来看流星雨10
[考研] 考研调剂 +3 15615482637 2026-04-03 3/150 2026-04-03 22:50 by ms629
[考研] 310求调剂 +18 争取九点睡 2026-03-30 18/900 2026-04-03 18:35 by ls刘帅
[考研] 334求调剂 +9 Trying] 2026-03-31 9/450 2026-04-03 15:18 by 琢珥丶
[考研] 机械专硕297 +3 Afksy 2026-04-03 3/150 2026-04-03 14:24 by 1753564080
[考研] 求调剂 +3 usbdndj 2026-04-03 3/150 2026-04-03 14:10 by dxiaoxin
[考研] 071000生物学调剂 +8 知昭蔓 2026-04-02 8/400 2026-04-03 10:36 by macy2011
[考研] 一志愿南开大学0710生物学359求调剂 +6 兔兔兔111223314 2026-03-29 8/400 2026-04-02 22:37 by louise0220
[考研] 求调剂 +7 Aniyaio 2026-04-02 7/350 2026-04-02 16:42 by zzsw+
[考研] 一志愿郑大材料工程290求调剂 +20 Youth_ 2026-03-30 20/1000 2026-04-02 14:48 by 5896
[考研] 一志愿北京科技大学085601材料工程英一数二初试总分335求调剂 +9 双马尾痞老板2 2026-04-01 9/450 2026-04-02 12:14 by oooqiao
[考研] 0856初试324分求调剂 +6 想上学求调 2026-04-01 6/300 2026-04-02 11:42 by 星空星月
[考研] 261求B区调剂 +5 明仔· 2026-04-01 7/350 2026-04-02 11:17 by 邹尉尉
[考研] 食品学硕362求调剂 +3 xuanxianxian 2026-04-01 3/150 2026-04-01 21:05 by 啊李999
信息提示
请填处理意见