Rare examples of confusing error messages

Usually Matlab creates very helpful error messages, e.g.:
??? Subscript indices must either be real positive integers or logicals.
It does not require much experience to identify the source of this error rapidly. (Finding a solution is completely different story!) Compared with e.g. the messages of famous operating systems or the GCC compiler, the high quality of these messages is extremely helpful.
Do you know counter-examples? Some misleading or irrelevant messages created by Matlab?

3 commentaires

Daniel Shub
Daniel Shub le 23 Avr 2012
I like this question.
Jan
Jan le 17 Jan 2013
Modifié(e) : Jan le 17 Jan 2013
@Daniel: And I like the small number of answers. As a rough estimation 6 of 10'000 error and warning messages are not useful!
Somebody tagged this question with "almost humor". But can you image suiting tags for a similar question in a MS forum? "hate", "blunt", "rudeness", "lunacy". Therefore I think this thread points out a very good reason to use Matlab to solve problem efficiently. And therefore the certain level of humor is an evidence of the seriosity of the topic.
James Muchechetere
James Muchechetere le 23 Août 2019
Yes. Got this message in r2017a:
Error using CPFSKModulator/parenReference
When the BitInput property is set to true, inputs must have be double or logical.

Connectez-vous pour commenter.

 Réponse acceptée

Andreas Goser
Andreas Goser le 24 Avr 2012
My all-time favourite is
Caught unexpected exception of unknown type.

7 commentaires

Jan
Jan le 26 Avr 2012
How do you get this un-message?
Walter Roberson
Walter Roberson le 26 Avr 2012
Modifié(e) : Walter Roberson le 4 Mai 2019
It appears there are a bunch of different ways. One of them is shown at http://www.mathworks.com/support/solutions/en/data/1-W111J/?product=ML&solution=1-W111J
Jan
Jan le 2 Mai 2012
@Walter: The linked solution claims: "This bug has been fixed in Release 14 Service Pack 3 (R14SP3)". Then I appreciate this service pack :-)
Arthur
Arthur le 8 Juin 2012
I can generate this reliably in R2012a. Unfortunately, once I start extracting subsets of the code in the vicinity of where the problem occurs, the error goes away. The best part is there are no stack traces or other helpful information to figure out what's happening, like when MATLAB crashes outright.
Sean de Wolski
Sean de Wolski le 27 Juin 2012
S = struct('hello','world','pi',pi);
setappdata(S,'e',exp(1));

Connectez-vous pour commenter.

Plus de réponses (8)

Jan
Jan le 24 Avr 2012
In Matlab5.3 (R11), but not in modern releases:
% First time:
reshape(1, [-1 -1])
??? Error using ==> reshape
Don't do this again!.
% Second time:
reshape(1, [-1 -2])
??? Error using ==> reshape
Cleve says you should be doing something more useful.
% Third time:
reshape(1, [-1 -3])
??? Error using ==> reshape
Seriously, size argument cannot be negative.

2 commentaires

Andreas Goser
Andreas Goser le 24 Avr 2012
Such eastereggs have been removed...
+1
Image Analyst
Image Analyst le 26 Avr 2012
Too bad. Why can't people have some fun?

Connectez-vous pour commenter.

Daniel Shub
Daniel Shub le 23 Avr 2012

2 votes

Definitely on the irrelevant side, but luckily it was taken care of pretty quickly. I think it might be the first bug I reported to TMW.
Basically someone at TMW left a debugging message in the serial port object callback so that it would always rethrow the last warning.
Oleg Komarov
Oleg Komarov le 23 Avr 2012
The guilty one:
foo('')
Undefined function 'foo' for input arguments of type 'char'.
No inputs:
foo
Undefined function or variable 'foo'.
Use as variable OR function?
clear foo
sum(foo)
Undefined function or variable 'foo'.
The two error messages considered together make you think that the first one is simply not properly behaving BECAUSE of the input.
However, most commonly it's the case of "undefined function" which is already implemented!
I suggest to suppress the first one and throw always the second message.

5 commentaires

Image Analyst
Image Analyst le 23 Avr 2012
I agree. If it's not defined for ANY input whatsoever, then it should say so, rather than make you think it's there but just expects doubles or whatever.
Walter Roberson
Walter Roberson le 24 Avr 2012
It's because of method lookup by class. If it has an argument then it has to look at the functions defined for the class of the argument and it has to ignore all other methods of all other classes. It would be relatively expensive to go back and do a second search to find if there happens to be a function with that name in some other class.
Oleg Komarov
Oleg Komarov le 24 Avr 2012
The question is wether the additional info causes more harm than it would if the info about the class was always omitted.
Image Analyst
Image Analyst le 24 Avr 2012
Seems to me it should look it up by function name (m-filename). So it should look for foo.m, not all possible functions of any name that take a class char (which would be a lot) and then determine if any of them are named foo.
Jan
Jan le 24 Avr 2012
It would be helpful to get one of these messages:
Either:
>> Undefined function 'foo' for input arguments of type 'char'
>> But there are these foo() functions for other inputs: ...
Or:
>> Undefined function 'foo' for input arguments of type 'char'
>> There is no other foo() function also.

Connectez-vous pour commenter.

Daniel Shub
Daniel Shub le 23 Avr 2012

1 vote

Another unhelpful aspect of error handling in MATLAB is if you catch an error in a callback and then rethrow the error, you lose the stack information.
Jan
Jan le 17 Jan 2017
Error using load
Number of columns on line 1 of ASCII file
C:\xyz.dat
must be the same as previous lines.
Most likely the text format does not match the one written by save -ascii, but where can I find the previous line of line 1?
Adam
Adam le 17 Jan 2017

1 vote

was one I got the other day. Not sure what I had done to get it though! I especially like the one word per line formatting!

2 commentaires

Steven Lord
Steven Lord le 17 Jan 2017
I searched a little bit and I'm not sure that's from a MathWorks function. [It is being displayed in a msgbox with the 'error' Icon, I believe, but that's a function anyone can call.]
Adam
Adam le 18 Jan 2017
It's definitely something deep down as I got it again yesterday when I tried to open a file that I had moved and was actually not on my path any more. I hit Ctrl C or pause or something and ended up with that message. It isn't something in my own code or 3rd party code that I have though so not sure what its source is!

Connectez-vous pour commenter.

Jan
Jan le 20 Juin 2017
Modifié(e) : Jan le 22 Août 2017
A = rand(1393120, 1);
xlswrite('Test.xlsx', A)
Error using xlswrite (line 219)
The specified data range is invalid or too large to write to the
specified file format. Try writing to an XLSX file and use Excel A1
notation for the range argument, for example, A1:D4.
Since Excel 2007 only up to 1'048'576 rows (2^20) are accepted. Then "too large" is fine and Matlab has all information to detect this. Suggesting an XLSX file and "A1:A1393120" will not solve the problem.

Catégories

En savoir plus sur Performance and Memory dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by