【发布时间】:2012-01-03 22:14:17
【问题描述】:
我正在尝试编写一个 Matlab 代码,给定一个矩阵,输出 3 个矩阵(根据一些规则)。虽然我很难让它工作 - 我无法输出带有矩阵作为条目的向量。我收到错误消息:
???在赋值 A(I) = B 中,B 和 I 中的元素数 必须相同。
我该怎么做呢?
【问题讨论】:
-
请向我们展示您已经获得的代码(相关部分)
标签: matlab
我正在尝试编写一个 Matlab 代码,给定一个矩阵,输出 3 个矩阵(根据一些规则)。虽然我很难让它工作 - 我无法输出带有矩阵作为条目的向量。我收到错误消息:
???在赋值 A(I) = B 中,B 和 I 中的元素数 必须相同。
我该怎么做呢?
【问题讨论】:
标签: matlab
你可以写
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))
只获取第一个参数,或者只获取前两个参数。
【讨论】:
您也可以使用单元格:
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;
【讨论】:
函数声明:
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 已填满。
【讨论】: