Clear Filters
Clear Filters

Not same fprintf MATLAB and Linux Console

2 views (last 30 days)
Hello everybody,
I am trying to catch an error and I have made the following code in Matlab:
catch ME
% Some error occurred if you get here.
errorMessage1 = sprintf('Error in function %s()\n',;
errorMessage2 = sprintf('Error in line %d\n',ME.stack(1).line);
errorMessage3 = sprintf('Error %s()\n',ME.message);
fprintf(2,'%s\n', errorMessage1);
fprintf(2,'%s\n', errorMessage2);
fprintf(2,'%s\n', errorMessage3);
The output of Matlab is the following one:
Error in hello()
Error in line 386
Error Index exceeds matrix dimensions.()
But, when I execute matlab from de Linux console:
./matlab < hello.m
I just get this output:
Index exceeds matrix dimensions
I cannot see the line or the .m I am running.
What kind of problem is this?
Thanks in advance,

Accepted Answer

Jan on 10 Oct 2017
Edited: Jan on 10 Oct 2017
If you write the message to stderr by
fprintf(2, '%s\n', errorMessage1);
you have to catch this channel also. Try:
fprintf(1, '%s\n', errorMessage1);
Perhaps this works instead, but I cannot try it currently and hopefully someone corrects me:
matlab -r hello.m 2>&1
Javier Naranjo
Javier Naranjo on 19 Oct 2017
Error: Unexpected MATLAB operator.
I tried with single and doble quotes and it did not work.. When I write down double it says too many input arguments.
Jan on 19 Oct 2017
Edited: Jan on 19 Oct 2017
@Javier: Sorry, my mistake.
./matlab -r "cd('~/folder1'); getOutput" -nosplash -nodesktop
The parameter of the -r command must contain a valid Matlab command, not the path of a m-function. You can find more details in the documentation:

Sign in to comment.

More Answers (0)


Find more on Data Import and Export in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!