在matlab中抑制输出变量

时间:2012-05-27 21:28:09

标签: matlab syntax return-value

我在Matlab中使用具有多个输出的函数,但我只对其中一个输出感兴趣。我想抑制其他输出变量(即避免它们返回并放入内存)。例如,使用max函数:

[output1 output2] = max(matrixA, [], 1);
% output1 returns the maximum, which i'm not interested in
% output2 returns the index of the maximum, which i *am* interested in

有没有办法调用该函数以便不返回output1?如果有,它是否提供了比上述计算更多的内存优势,但是立即调用clear output1从内存中删除output1?

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

使用代字号:

[~, output2] = max(matrixA, [], 1);

我怀疑会有多少内存优势(除了分配输出变量之类的文书内容等))因为该函数将完全运行并分配所需的全部内容。这样,您只是没有获取值,并且max函数范围内的第一个输出变量的值将被垃圾收集。

答案 1 :(得分:2)

~字符替换不需要的任何输出变量。

E.g。

[~,I] = max(matrix);

这种模式优于clear,因为MATLAB解释器和即时编译器可以避免计算忽略变量的内存和CPU成本。

修改

这是~使用Loren Shure的documentationblog post。我找不到任何关于使用忽略变量来消除不必要计算的确切信息。