可能重复:
How to elegantly ignore some return values of a MATLAB function?
我有一个带两个输出的Matlab函数。有时我会使用两种输出。
function [output1 output2] = myFunction(input)
[a b] = myFunction(input);
其他时候我只需要输出1并且不想浪费内存分配输出2
a = myFunction(input);
但是,我无法找出一种简单的方法来提供相反的方案(只需要输出2而不想浪费内存分配输出1)。我认为它会像
[~ b] = myFunction(input)
但这似乎不起作用。有人建议快速解决方案吗?谢谢你的帮助!
答案 0 :(得分:2)
它是[~, b]
,而不是[~ b]
。逗号丢失了。
答案 1 :(得分:0)
除非您的输入有办法阻止创建,否则将在myFunction内部创建对象。如果可以在内部阻止创建,则可以修改myFunction以返回单元格数组或其他结构,从中可以决定要保留哪些元素。如果您担心[dontwant b]通过持有dontwant浪费matlab内存,那么您可能希望通过调用
从工作区中删除dontwantclear dontwant;