我想写一个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