📜  从一个有多个输出的函数中只获取一个输出? matlab (1)

📅  最后修改于: 2023-12-03 15:21:55.154000             🧑  作者: Mango

如何从一个有多个输出的函数中只获取一个输出? - Matlab

在 Matlab 中,有一些函数会返回多个输出参数。但是有时候我们只对其中的某个输出感兴趣,该怎么办呢?

常规的做法是使用 [output1, output2, ...] = function_name(input1, input2, ...) 的方式将所有的输出参数都存储下来,然后再选择其中我们感兴趣的那一个。但是这样做有些麻烦,特别是当输出参数很多的时候。

幸运的是,Matlab 提供了一种非常简单的方式来只获取我们需要的输出参数。下面是具体的做法:

[~, output2, ~] = function_name(input1, input2, ...);

上面代码中,我们使用了波浪线符号 ~ 来表示我们不需要的输出参数。这样做的好处是,我们不需要为这些不需要的输出参数指定变量名,从而简化了代码。

需要注意的是,在使用这种方式时,我们需要将每一个不需要的输出参数都用 ~ 来表示。同时,我们需要保证 ~ 和需要的输出参数都在同一个 [ ] 中,这样才能保证正确地获取需要的输出参数。

下面是一个具体的例子:

function [out1, out2, out3, out4] = myfunc(in1, in2, in3)
    out1 = in1 + 1;
    out2 = in2 - 1;
    out3 = in3 * 2;
    out4 = out1 + out2 + out3;
end

[~, out2, ~] = myfunc(10, 5, 2);

disp(out2); % 输出 4

在上面的例子中,myfunc 函数返回了四个输出参数。但是我们只对第二个输出参数 out2 感兴趣。因此,我们使用了 [~, out2, ~] 的方式来只获取 out2。最后,我们输出了 out2,得到了我们需要的结果。