首先,有没有需要声明的单独的元素。正如你在你的第一个代码片段中展示的那样很好。
所以用这个的主要问题进行循环(除了一个事实,即它实际上并没有模仿这里显示D =[CA;CA^2;CA^3;........;CA^n]
的过程)是您使用的是d(i,j)=c*a(i,j)*^n
变量n
时,实际上它是一个正在变k
循环递增第一个for
循环。所以你总是计算d(i,j)=c*a(i,j)*^40
,而应该使用k
,步伐为n
。
a(i,j)*^k
也是不正确的语法,因为*^
不会乘法,也不是指数。 MATLAB会因此返回一个错误。
此外,你会得到Subscripted assignment dimension mismatch.
错误,因为C是1x2矩阵和A(i,j)只是一个元素。
我说它不会模仿这个过程的原因D =[CA;CA^2;CA^3;........;CA^n]
是因为你只对C进行元素明智的操作,然后把它们放到D中,我相当肯定这不是你运行的矩阵矩阵乘法 - 即使你正确地分解它 - 但这是低效的,因为MATLAB会为你做。
clear D
n=10;
A=[1 2;2 1];
C=[0,1];
for k=1:n
D(k,:) = C*A^k;
end
D =
2 1
4 5
14 13
40 41
122 121
364 365
1094 1093
3280 3281
9842 9841
29524 29525
“但我做不到”是_没问题。 –
@ Okuma.Scott也许这个问题是不适当的,但是对于需要解决的MATLAB语法基础知识存在一些明显的误解。 – Falimond
@Falimond对不起,我想我会变得厌倦。好的答案顺便说一句。 –