我试图编写一个Matlab代码,给定一个矩阵,输出3个矩阵(根据一些规则)。我很难让它工作 - 我无法输出带有矩阵作为条目的向量。我收到错误消息:
???在赋值A(I)= B中,B和I中的元素数 必须是一样的。
我该怎么做呢?
答案 0 :(得分:4)
你可以写
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))
只获得第一个参数,或者只获得前两个参数。
答案 1 :(得分:1)
您也可以使用单元格:
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;
答案 2 :(得分:0)
功能声明:
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被填满。