matlab - 如何获得所有输出(MatLab)?

标签 matlab output

假设我有一个函数给出未知数量的输出参数(它取决于输入,因此通过循环改变)。如何获得所有这些?

nargout 没有帮助,因为该函数使用 varargout(结果为 -1)

当然我不能重写函数,否则问题不会出现:-)

最佳答案

好的,感谢所有参与讨论的人。综上所述,这个问题似乎没有通用的解决方案,因为 MatLab 本身会在函数调用之前估计所需输出的数量以在其内部使用。不过可以指出三种情况:

1) 函数在定义中没有varargout,因此nOut=nargout(@fcn)返回正数。

然后 nOut 是输出的实际数量,我们可以使用元胞数组和列列表技巧。

X=cell(1,nOut);
[X{:}]=fcn(inputs);

2) 函数定义了varargout,因此nOut=nargout(@fcn)返回负数。然而,可以找到与输入的一些相关性(如 length(varargin)=length(varargout))。

然后我们可以从 inputs 计算结果 nOut 并执行上面的列列表技巧。

3) 你认识 fcn 开发者。

向他寻求帮助。例如,使函数的输出成为元胞数组。

关于matlab - 如何获得所有输出(MatLab)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24657164/

相关文章:

matlab - 无需 for 循环即可更改矩阵的多个元素(已知坐标)

excel - matlab使用activex接口(interface)自动保存excel文件

java - 流式输出java

html - 将 id 添加到导航项时代码输出发生变化

database - 数据库;查询输出,强制表输出?

python - 使用霍夫圆变换检测圆阵列

matlab - 求解微分方程需要大量时间

c - 动态内存分配和内存泄漏

java - 从不同类型的文件中获取值并将其放入 arraylist

c - C中奇怪的printf输出