[問題] 問三維矩陣轉一維(或二維)矩陣的迴圈寫法

看板MATLAB作者 (仕倖)時間11年前 (2014/03/08 00:06), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
【我有用土法煉鋼的寫法寫在下方,想要問有沒有一次生成的迴圈寫法。】 小弟初學MATLAB不久,剛好要用到...碰到一個問題 Azone_RI是一個3x3x10三維矩陣 →Azone_RI(x位置,y位置,t年分) 小弟想要把在第(x,y)位置所有年份(1991~2000年)的值, 並用eval生成A1,A2...這樣。 如果是二維我還OK,因為3x3矩陣A(3,2)=A(6),迴圈可以直接for ti=1:9 eval裡面就設定mat2str(ti)來寫。(還是用num2str?) 可是三維用for ti=1:3裡面在一個for tj=1:3就覺得好怪, 因為eval裡面的就會錯... 不知道有沒有一次生成的寫法?(順序就可以了@@) 以下是(土法煉鋼)想要得到的結果: t0=1991:2000; . . . . Azone_RI=cat(3,A_RI1991,A_RI1992,A_RI1993,A_RI1994,A_RI1995,A_RI1996,A_RI1997,A_RI1998,A_RI1999,A_RI2000) A1(1,:)=Azone_RI(1,1,:); %新矩陣(1,1)位置的1991~2000年的值 A2(1,:)=Azone_RI(2,1,:); %新矩陣(2,1)位置的1991~2000年的值 A3(1,:)=Azone_RI(3,1,:); %新矩陣(3,1)位置的1991~2000年的值 A4(1,:)=Azone_RI(1,2,:); %新矩陣(1,2)位置的1991~2000年的值 A5(1,:)=Azone_RI(2,2,:); %新矩陣(2,2)位置的1991~2000年的值 A6(1,:)=Azone_RI(3,2,:); %新矩陣(3,2)位置的1991~2000年的值 A7(1,:)=Azone_RI(1,3,:); %新矩陣(1,3)位置的1991~2000年的值 A8(1,:)=Azone_RI(2,3,:); %新矩陣(2,3)位置的1991~2000年的值 A9(1,:)=Azone_RI(3,3,:); %新矩陣(3,3)位置的1991~2000年的值 plot(t0,A1,t0,A2,t0,A3,t0,A4,t0,A5,t0,A6,t0,A7,t0,A8,t0,A9); %t0-A_RI圖 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.101.9 ※ 編輯: h10840206 來自: 111.241.101.9 (03/08 00:08)

03/08 04:14, , 1F
plot(t0,reshape(Azone_RI,9,[]))
03/08 04:14, 1F

03/08 13:42, , 2F
wow THANKYOU!!
03/08 13:42, 2F
文章代碼(AID): #1J6UwA0m (MATLAB)
文章代碼(AID): #1J6UwA0m (MATLAB)