由於某些原因,我無法制作帶有變量的矩陣。我收到以下消息。如何在矩陣中分配變量?
>>> A= [a b ;(-1-a) (1-b); (1+a) b]
error: horizontal dimensions mismatch (2x3 vs 1x1)
爲什麼?如果我錯了,請告訴我正確的方法。
由於某些原因,我無法制作帶有變量的矩陣。我收到以下消息。如何在矩陣中分配變量?
>>> A= [a b ;(-1-a) (1-b); (1+a) b]
error: horizontal dimensions mismatch (2x3 vs 1x1)
爲什麼?如果我錯了,請告訴我正確的方法。
在Matlab中首先需要指定一個變量,然後才能使用它,
a = 1;
b = a+1;
這將因此給出一個錯誤,
clear;
b = a+1; % ERROR! Undefined function or variable 'a
Matlab的也永遠不會接受未分配的變量。這是因爲,在最低級別上,您沒有a
。你將會得到機器碼,其編號爲a
。這是由Matlab中的JIT編譯器處理的,所以你不需要擔心這一點。
如果你想使用變量你有數學,你可以具體表達這個matlab。該對象被稱爲定義sym
X到可變x
是sym
和語法,
syms x;
這就是說,可以定義一個向量或矩陣,
syms a b x y; % Assign the syms
A = [x y]; % Vector
B = A= [a b ;(-1-a) (1-b); (1+a) b]; % Matrix.
的矩陣的大小可以通過size(M)
或調暗找到。當且僅當M1有大小m * n個和M2有大小ñ* P可以calcuate矩陣乘積M3 = M1 * M2。然後M3的尺寸將爲m * p。這也意味着操作A^N = A * A * ...僅當m = n時才被允許,因此矩陣是正方形的。這可以通過比較在matlab中驗證,
syms a b
A = [a,1;56,b]
if size(A,1) == size(A,2)
disp(['A is a square matrix of size ', num2str(size(A,1)]);
else
disp('A is not square');
end
這些是在Matlab中指定變量以及矩陣乘法的基本規則。此外,谷歌搜索錯誤錯誤:'x'undefined只會給我八度命中。你使用八度嗎?在這種情況下,我無法保證您可以使用sym
對象或者語法正確。
是的,我使用八度。你怎麼知道的? –
@lochana我做了一個谷歌搜索的錯誤消息。我從來沒有使用八度,我沒有從Matlab識別錯誤。但是,如果我的答案不起作用,您應該爲該問題添加一個八度標記,並添加一個評論,指出這不適用於八度。 – patrik
@patrik這適用於Octave。問題是用戶如何定義'a'和'b'(我猜他們不是標量的) – carandraug
在您的代碼中如何定義a和b?如果我輸入'syms a b',然後粘貼你的命令,它就可以正常工作。 –
@HomegrownTomato哦,是的,謝謝你。可能是因爲我收到錯誤。我沒有定義它們。我只是想用a,b來做一些矩陣計算,所以我有解決方案。但是,如果想要這樣做,例如,如果我想要a和b的解決方案。我該如何去做。謝謝。 –
如果a和b是標量,你的矩陣是矩形的,所以A^2沒有定義。如果定義了它,你只需簡單地給出命令'A^2'來評估。 –