我想寫一個Matlab代碼,給定一個矩陣,輸出3個矩陣(根據一些規則)。我很難得到這個工作 - 雖然我不能輸出一個帶有矩陣的向量作爲條目。我收到錯誤信息:輸出幾個矩陣的Matlab代碼
???在賦值A(I)= B中,B和I 中的元素數量必須相同。
我該如何去做這件事?
我想寫一個Matlab代碼,給定一個矩陣,輸出3個矩陣(根據一些規則)。我很難得到這個工作 - 雖然我不能輸出一個帶有矩陣的向量作爲條目。我收到錯誤信息:輸出幾個矩陣的Matlab代碼
???在賦值A(I)= B中,B和I 中的元素數量必須相同。
我該如何去做這件事?
你可以寫
function [A B C] = myFunction(X)
A = X;
B = 2 * X;
C = 3 * X;
end
與
[a b c] = myFunction(ones(2))
調用它。如果你不希望所有的輸出,只是
a = myFunction(ones(2))
或
叫它[a b] = myFunction(ones(2))
只能得到第一個參數,或者只是前兩個參數。
謝謝。是否有可能適應這種情況,以便矩陣輸出的數量可以是任何可達3的值? – 2012-01-03 13:38:49
是的(看我的編輯) – 2012-01-03 13:39:53
謝謝。我意識到我應該更具體一些:有時myFunction將輸出1個矩陣,有時2個,有時3個(取決於輸入矩陣)。我想在我正在編寫的另一個函數內調用myFunction,然後使用由MyFunction輸出的矩陣。我事先不知道myFunction會給我多少個參數。我怎樣才能解決這個問題? – 2012-01-03 13:56:38
函數聲明:
function [A, B, C] = something (Input_mat)
%Do whatever needs to be done here, for example:
A= Input_mat;
B= Input_mat';
C= ones(18);
然後當你調用它使用:
[A,B,C] = something (Some_mat)
A,B和C被填充。
您還可以使用細胞:
A=cell(1,3); %% or A=cell(1,2); if you want to output only 2 matrices
A{1}=B;
A{2}=C;
A{3}=D;
如果你的矩陣都具有相同的大小,你也可以將它們連接起來:
A=zeros(m,n,3);
A(:,:,1)=B;
A(:,:,2)=C;
A(:,:,3)=D;
,請告訴我們(的相關部分)的代碼你」已經得到了 – BioGeek 2012-01-03 13:30:40