Ali
Ali

Reputation: 251

Suppressing a function's command window output

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.

Upvotes: 21

Views: 20030

Answers (2)

SCFrench
SCFrench

Reputation: 8374

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

evalc('out = func(arg1, arg2);');

Upvotes: 23

Amro
Amro

Reputation: 124563

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)

Upvotes: 10

Related Questions