EDA365电子论坛网

标题: MATLAB如何把两个变量储存到一个2×1的矩阵并迭代 [打印本页]

作者: happyday    时间: 2020-12-17 13:34
标题: MATLAB如何把两个变量储存到一个2×1的矩阵并迭代
例如:for n= 1:100
8 m0 C& Z3 _6 ]$ P2 u/ k        i(1)=0;
8 \+ y+ d# |( Y! ^6 a        u(1)=0;
9 s+ D1 q! L0 E7 I, S5 u) T' v% Z       a=[1,2;3,4];% G8 z! r% F' R2 P/ z- N3 `. {' L
现在我想把i(n)和u(n)都储存到2×1的矩阵X(n)里,第一行为i(n),第二行为u(n),并用迭代公式:X(n+1)=a*X(n),并把每一次循环的X(n)都保存下来,请问各位大牛们应该如何设定?7 L* X6 x8 |1 o, x
如果令X(n)=[i(n);u(n)]会报错,X{n}=[i(n);u(n)]就会生成1×1的cell了。先谢谢各位大牛了
# n3 D/ k, _- L; ~
作者: youOK    时间: 2020-12-17 14:37
菜鸟经过,帮顶了哈
作者: xiaogegepcb    时间: 2020-12-17 14:38
找一下看有没有相应的函数
作者: uperrua    时间: 2020-12-17 14:44
lz可以先在循环外初始化X=zeros(2,n)然后循环内X(:,n)=[i(n),u(n)]这样应该没问题了。
作者: happyday    时间: 2020-12-17 14:56
uperrua 发表于 2020-12-17 14:44
- M8 s1 X% B& k2 ]7 Ylz可以先在循环外初始化X=zeros(2,n)然后循环内X(:,n)=这样应该没问题了。
" q0 E9 N& |7 y
非常感谢您!但是我想问一下zeros后面的size不是只能用数值吗?如果在循环外我用X=zeros(2,n)就会报错。$ h1 H( i8 K3 t( `, w9 L1 X
然后就是我想问一下循环内迭代X(n+1)=a*X(n)这种情况是应该要运用什么语句呢?我用X(:,n+1)=a*X以及X(:,n+1)=a*X(:,n)都会报错 索引超出数组范围。! B7 T  F+ E8 y: J; M

作者: uperrua    时间: 2020-12-17 14:57
happyday 发表于 2020-12-17 14:56$ e. W( u8 _, A7 \& S$ u
非常感谢您!但是我想问一下zeros后面的size不是只能用数值吗?如果在循环外我用X=zeros(2,n)就会报错。
6 X5 ?. Q/ m) x- w8 M6 j ...
1 |* f& W" W) P5 T
不用初始化也行,我给你举个例子& f% H- P5 v; c9 J& K0 w4 f
for i = 1:3
6 z! n9 S  T" \7 VX(:,i)=randn(2,1);1 `% g1 G; [* L$ S! Q6 U! P8 O
X(:,i+1)=2*X(:,i);- v+ g$ N( s  s4 J1 o2 r: V) r
end+ r7 }, B9 }# K9 e
但是LZ要注意更新i+1和i列的关系。
; |' `5 u. P$ J" U% T! F




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2