[討論] 雙重for迴圈 重複問題

看板MATLAB作者 (草草)時間8年前 (2015/07/19 12:32), 8年前編輯推噓2(2012)
留言14則, 2人參與, 最新討論串1/1
以下是小弟的程式碼 for repert 1:3 %跑三條不同曲線 for i=1:314 %有314個數據(X軸) if .... data=abc; %有包含誤差的公式,data是反應值(y軸) else data=aba; %有包含誤差的公式,data是反應值(y軸) end total=[total,data]; %314筆資料(1條曲線)都存入total end total_all=[total_all,total]; %3條曲線都存入total_all end 以下是跑出的結果及問題 1.為什麼total資料變942筆(1*942 double),應該要314筆才對 2.為什麼total_all資料變1884筆(1*1884 double),應該要942筆才對 3.為什麼total_all那欄我使用分號無法編譯 以下是想要的結果 1.total資料有314筆(1*314 double) 2.total_all資料有914筆(3*314 double) 再麻煩大大,幫小弟看一下哪邊出問題,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.182.143 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1437280328.A.41D.html

07/19 13:01, , 1F
你total沒有每次repeat存出來以及清空,所以第一次t
07/19 13:01, 1F

07/19 13:01, , 2F
otal跟total_all都是314,第二次total是628跟total_
07/19 13:01, 2F

07/19 13:01, , 3F
all是314+628=942,第三次就total是942跟total_all
07/19 13:01, 3F

07/19 13:01, , 4F
是942+942=1884
07/19 13:01, 4F

07/19 13:02, , 5F
;無法編譯是因為三次total長度都不一樣
07/19 13:02, 5F

07/19 13:04, , 6F
建議改法是最前面加上total_all=zeros(314, 3);
07/19 13:04, 6F

07/19 13:04, , 7F
迴圈改成兩層i, j 每次改total_all(i, j)的值
07/19 13:04, 7F

07/19 13:05, , 8F
(preallocate matrix會比較快
07/19 13:05, 8F
謝謝大大,原來要把total=[]放在repert 1:3下面就好了 在請問一下,total有跑出完整的一條線, 為什麼我跑出來的圖,total_all沒有三條線呀?X軸值變成1~3,應該要1~314 http://imgur.com/mXTXEQ2
謝謝 ※ 編輯: popo14777 (59.102.182.143), 07/19/2015 17:03:37

07/19 22:17, , 9F
plot(total_all') 試試看?
07/19 22:17, 9F
畫出來了 謝謝!! 請問為什麼要加上這個符號'才能畫出來啊? ※ 編輯: popo14777 (59.102.182.143), 07/19/2015 22:34:36

07/20 00:12, , 11F
tzptin
07/20 00:12, 11F

07/20 00:13, , 12F
Create a 2-D line plot of甴. MATLAB긠plots each matr
07/20 00:13, 12F

07/20 00:16, , 13F
Create a 2-D line plot of Y. MATLAB plots each
07/20 00:16, 13F

07/20 00:17, , 14F
matrix column as a separate line.
07/20 00:17, 14F
文章代碼(AID): #1LgoX8GT (MATLAB)