matlab – 检测某些输出参数是否未使用

Matlab为某些例程的输出参数列表中的〜字符引入,以表明我们对此输出值不感兴趣.例如:

% Only interested for max position, not max value
[~, idx] = max(rand(1, 10));

出于速度优化的原因,是否可以从一些例程内部检测到某些输出参数未被使用?例如:

function [y, z] = myroutine(x)
%[
     if (argout(1).NotUsed)
         % Do not compute y output it is useless
         y = []; 
     else
         % Ok take time to compute y
         y = timeConsummingComputations(x);
     end

     ...
%]

最佳答案 它可能不是最好的,但一个简单的解决方案是添加另一个输入参数

function [y, z] = myroutine(x, doYouWantY)
%[
     if doYouWantY == 0
         % Do not compute y output it is useless
         y = []; 
     else
         % Ok take time to compute y
         y = timeConsummingComputations(x);
     end

     ...
%]
点赞