内联条件fprintf函数

时间:2018-01-22 08:05:39

标签: matlab

在我的每个函数开始时,我传递一个true或false的调试标志。我想创建一个使用此标志的函数(可能是内联),并仅在值设置为true时打印。 e.g:

fprintff = @(str) debug&fprintf(str)
...
...
fprintff(str); %will only print if debug is set to true

我知道我可以用fprintff(str,debug)来做,但我想在没有它的情况下使用它。

没有持久性或全球性!

1 个答案:

答案 0 :(得分:1)

一种可能性是将调试打印功能定义为依赖&&运算符的short-circuiting。这种方式fprintf仅在定义函数时debug_flag == true进行评估。

function foo(bar,debug_flag)
    debug_print = @(varargin) debug_flag && fprintf(1,varargin{:});
    ...
    debug_print('This only prints if debug_flag == true\n');
    ...
end
相关问题