1

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

让我们在function.m中说

[a, b, c] = function( )

在 main.m

[var1, var2] = function;

4

3 回答 3

4

在 matlab 中调用(几乎)任何函数时,您可以请求比它指定的更少的输出。所以,是的,你给出的例子应该工作得很好。

你可以用它做一些聪明的事情,比如在函数中使用nargout来查看请求了多少输出参数,并且只计算请求的值作为优化技巧。

于 2013-07-09T11:47:09.373 回答
4

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

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

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

[~, var1, var2]=function
于 2013-07-09T11:52:45.230 回答
0

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

否则,如果您可以操作原始文件,则可以在之前或末尾引入一个输入来执行此操作,并使用内联子例程生成您想要的输出。

或者,如果您不能,它将以元胞数组或向量的形式返回,您可以传递一个匿名函数以这种方式生成所需的输出。

真的,可以通过多种方式完成。非常符合上下文。

于 2013-07-09T12:14:02.933 回答