当使用多输出matlab函数时,我是否需要回调所有变量?

时间:2013-07-09 11:41:51

标签: matlab

当使用多输出matlab函数时,我是否需要回调所有变量?或者我可以采取前两个变量? (如果是这样......不推荐吗?)

让我们在function.m

中说

[a, b, c] = function( )

在main.m

[var1, var2] = function;

3 个答案:

答案 0 :(得分:4)

在matlab中调用(几乎)任何函数时,您可以请求的输出少于指定的数量。所以,是的,你给出的例子应该完美无缺。

您可以使用一些聪明的方法,例如在函数中使用nargout来查看已请求了多少输出参数,并仅计算作为优化技巧请求的值。

答案 1 :(得分:4)

这取决于函数的定义,以及您想要获得的输出。

并非所有功能都允许这样做,您可以在特定功能的帮助文档的开头找到每个功能的所有选项。

如果您只想要第二个或第三个输出,并且您还希望保存不感兴趣的结果的计算时间,则可以使用~选项,如下所示(适用于版本2009b及更高版本) ):

[~, var1, var2]=function

答案 2 :(得分:0)

许多函数允许传递的选项改变函数的行为方式。我使用/编写了各种数值求解函数,并且选择了一个很好的选项,例如LSMR function(s)

否则,如果您可以操作原始文件,则在使用内联子例程之前或结尾处引入一个输入,以生成所需的输出。

或者,如果你不能,它将作为单元格数组或向量返回,你可以通过anonymous function以这种方式生成所需的输出。

真的,可以做很多方法。非常情境化。