Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Rare examples of confusing error messages

Asked by Jan Simon on 23 Apr 2012

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?

2 Comments

Daniel on 23 Apr 2012

I like this question.

Jan Simon on 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.

Jan Simon

Products

No products are associated with this question.

6 Answers

Answer by Andreas Goser on 24 Apr 2012
Accepted answer

My all-time favourite is

Caught unexpected exception of unknown type. 

5 Comments

Jan Simon on 2 May 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 on 8 Jun 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 on 27 Jun 2012

S = struct('hello','world','pi',pi);
setappdata(S,'e',exp(1));

Andreas Goser
Answer by Jan Simon on 24 Apr 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 Comments

Andreas Goser on 24 Apr 2012

Such eastereggs have been removed...

+1

Image Analyst on 26 Apr 2012

Too bad. Why can't people have some fun?

Jan Simon
Answer by Daniel on 23 Apr 2012

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.

http://www.mathworks.co.uk/support/bugreports/search_results?search_executed=1&keyword=serial+port+warning&release_filter=Exists+in&release=116&selected_products=&commit=Search

Basically someone at TMW left a debugging message in the serial port object callback so that it would always rethrow the last warning.

1 Comment

Jan Simon on 23 Apr 2012

Very cute.

Daniel
Answer by Oleg Komarov on 23 Apr 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 Comments

Oleg Komarov on 24 Apr 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 on 24 Apr 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 Simon on 24 Apr 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.

Oleg Komarov
Answer by Daniel on 23 Apr 2012

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.

0 Comments

Daniel
Answer by Walter Roberson on 26 Apr 2012
Invoke Error, Dispatch Exception: Exception Error Occurred

isn't the most enlightening of messages...

http://www.mathworks.com/matlabcentral/answers/36653-invoke-error-dispatch-exception-exception-error-occurred

0 Comments

Walter Roberson

Contact us