matlab - 如何优雅地忽略 MATLAB 函数的某些返回值

标签 matlab function return-value

是否可以从函数中获取“第 n 个”返回值,而不必为它之前的所有 n-1 返回值创建虚拟变量?

比方说,我在 MATLAB 中有以下函数:

function [a,b,c,d] = func()
a = 1;
b = 2;
c = 3;
d = 4;

现在假设,我只对第三个​​ 返回值感兴趣。这可以通过创建一个虚拟变量来实现:

[dummy, dummy, variableThatIWillUse, dummy] = func;
clear dummy;

但我认为这有点丑陋。我认为您可以执行以下操作之一,但您不能:

[_, _, variableThatIWillUse, _] = func;

[, , variableThatIWillUse, ] = func;

variableThatIWillUse = func(3);

variableThatIWillUse = func()(3);

是否有任何优雅的方法可以做到这一点?


到目前为止,最好的解决方案是简单地使用 variableThatIWillUse 作为虚拟变量。这使我不必创建一个真正的虚拟变量来污染工作空间(或者我需要清除)。简而言之:解决方案是对每个返回值使用 variableThatIWillUse,直到感兴趣的返回值。之后的返回值可以简单地忽略:

[variableThatIWillUse, variableThatIWillUse, variableThatIWillUse] = func;

我仍然认为这是非常难看的代码。

最佳答案

在 MATLAB 版本 7.9 (R2009b) 中,您可以使用 ~,例如,

[~, ~, variableThatIWillUse] = myFunction();

请注意,, 不是可选的。仅键入 [~ ~ var] 将不起作用,并且会引发错误。

参见 release notes了解详情。

关于matlab - 如何优雅地忽略 MATLAB 函数的某些返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/747296/

相关文章:

看似相似但行为不同的 C++ 代码 : any idea why?

c - 将整数分配给指针的 mxArray

function - Lisp 板计数件

rust - 更改返回结果的函数的返回类型

python - 将列表的副本传递给 python 中的函数

javascript - 将函数传递给innerHTML方法

shell - 如何检查 shell 指令的返回值

string - 单元格单元格数组的并集

c++ - Opencv 中的标准过滤器

matlab - 如何识别生成特定工作区变量的脚本?