首先,有沒有需要聲明的單獨的元素。正如你在你的第一個代碼片段中展示的那樣很好。
所以用這個的主要問題進行循環(除了一個事實,即它實際上並沒有模仿這裏顯示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對不起,我想我會變得厭倦。好的答案順便說一句。 –