从Matlab函数返回多个输出变量

use*_*392 9 matlab

可以说我有一个功能:

function [ A, B, C ] = test(x, y, z)
    A=2*x;
    B=2*y;
    C=2*z;
end
Run Code Online (Sandbox Code Playgroud)

当您按下run时,matlab仅返回输出参数中的第一个值 - [A]在本例中.是否有一个命令,我可以放在我的函数中,自动返回所有函数输出参数[A,B,C]而不是第一个参数.我知道我可以输入我的命令窗口[ A, B, C ] = test(x, y, z)并获取所有值,但有时候我很懒,只想按Run并自动获取所有值.

Dan*_*Dan 8

一些选择:

添加一个参数以指定控制台的详细输出,但默认情况下将其设置为false:

function [ A, B, C ] = test(x, y, z, verbose)

   if nargin = 3
       verbose = false;
   end;

   A=2*x;
   B=2*y;
   C=2*z;

   if verbose
       fprintf('A = %f\nB = %f\nC = %f', A, B, C);
   end;

end
Run Code Online (Sandbox Code Playgroud)

或将它们组合成一个输出:

function output = test(x, y, z)

   A=2*x;
   B=2*y;
   C=2*z;

   output = [A, B, C]; %// Or {A;B;C} if they're not going to be the same size, but then it won't display anyway

end
Run Code Online (Sandbox Code Playgroud)

或者如果你真的想要我猜你可以编写一个你在函数上调用的包装器函数,它会显示你可以在任何函数上使用的所有三个函数.但这似乎不值得.