作者h10840206 (仕幸)
看板MATLAB
标题[问题] 问三维矩阵转一维(或二维)矩阵的回圈写法
时间Sat Mar 8 00:06:32 2014
【我有用土法炼钢的写法写在下方,想要问有没有一次生成的回圈写法。】
小弟初学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)
1F:推 tml:plot(t0,reshape(Azone_RI,9,[])) 03/08 04:14
2F:→ h10840206:wow THANKYOU!! 03/08 13:42