Suppressing a function's command window output

2019-01-05 04:25发布

A function I'm using has display() in it (or other things that display messages on command window), so it outputs a lot of things (x 1200) on command line when I run my code, which makes things hard to track and observe.

Is there a way to suppress the output of this specific function? Ending the statement with semicolon obviously doesn't help.

2条回答
可以哭但决不认输i
2楼-- · 2019-01-05 05:09

You might try wrapping the call to the function in an evalc:

evalc('out = func(arg1, arg2);');
查看更多
虎瘦雄心在
3楼-- · 2019-01-05 05:23

The easiest way is to just create a dummy function DISP/DISPLAY and place it in a private folder along with your own function:

private/disp.m

function disp(x)
    return
end

myFunc.m

function myFunc()
    %# ...
    disp(1)
end

By placing the disp function inside a private folder, you override the built-in function with the same name, yet this version is only visible to functions in the parent directory, thus maintaining the original functionality in other places.

Make sure that you DON'T add this private folder to your path, just have myFunc.m on the path (Please read the relevant documentations)

查看更多
登录 后发表回答