[問題]for迴圈的條件式變數可否改變?

看板MATLAB作者 (ISMY)時間12年前 (2013/05/13 02:20), 編輯推噓4(406)
留言10則, 6人參與, 最新討論串1/1
例如 k=0; for i=1:100 k(i)=i+1; if (k/5)==0 i=i+3; end end 也就是說我希望if條件發生後i會自動往後跳3 然後下一個進入for迴圈的i是i+3 可是我試過不會動 他還是乖乖地每次跳i+1 請問我該怎麼改寫? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.169.104

05/13 02:27, , 1F
因為你K/5==0根本沒有成立過 你應該想用mod(k,5)或rem(k,5)吧
05/13 02:27, 1F

05/13 02:32, , 2F
Sorry 我那個k/5那個只是舉例,我只是想要當那個if成立後
05/13 02:32, 2F

05/13 02:32, , 3F
下面的i值能改變for迴圈的i
05/13 02:32, 3F

05/13 03:05, , 4F
matlab 的for loop index是無法被改變的,這是feature
05/13 03:05, 4F

05/13 05:14, , 5F
真的要改可以用while loop
05/13 05:14, 5F

05/13 23:11, , 6F
或用break跳出
05/13 23:11, 6F

05/14 13:19, , 7F
可以for i=1:3:100 等於每次加3一直到100 但就是break
05/14 13:19, 7F

05/14 13:19, , 8F
再用另一個for跑吧
05/14 13:19, 8F

05/14 14:38, , 9F
通常是不建議改for loop 的counter的...
05/14 14:38, 9F

05/18 14:01, , 10F
用continue跟mod應該可以完成
05/18 14:01, 10F
文章代碼(AID): #1HZzrJ1P (MATLAB)