What frustrates you about MATLAB?

308 views (last 30 days)
Oliver Woodford
Oliver Woodford on 16 Feb 2011
Commented: Rik on 10 Dec 2022
I love MATLAB. It is so quick and easy to write software to do what you want. It has excellent debugging and profiling tools. It is cross platform, making code easy to share (assuming the other people have forked out for the not-so-cheap license). It has interfaces to other software.
However, there are some things about it that irk me. I'd like to hear from other people what things annoy them about MATLAB.
---------------------------------
Because this thread has become so large it is slow to load and navigate. Please post new answers in the second thread.
---------------------------------
  58 Comments
Rik
Rik on 10 Dec 2022
I was given to understand when the move feature was introduced that moving to a different thread would be possible in the future. I don't know the timeline for that feature or whether they're still working on it. It might come together with a different change I'm expecting to be done somewhere in the next 6 months.
Moving between threads will really help keeping threads like this clean, as I could move 110 answers to two different threads to get this one back to 50. It will take me an afternoon, but the end result would be navigateable threads.

Sign in to comment.

Answers (160)

Oliver Woodford
Oliver Woodford on 16 Feb 2011
MATLAB's figure rendering and exporting functions are so full of bugs and "features" it defies belief. The rendering is very slow and stalls computations - rendering should be in a separate thread and not delay computations (unless specified by the user). It is crazy that you can't have a seperate colormap per axes, either.
  9 Comments
Tayyip Ensar Özkaya
Tayyip Ensar Özkaya on 14 Jun 2020
The 3D control of pointclouds is just the hell!!

Sign in to comment.


Ian
Ian on 28 Mar 2011
  • GUIDE is a such an underpowered mess. Very poor set of widgets, endless bugs and terrible performance in the Guide editor (try moving sets of elements with the keyboard and weep!). TMW has dragged along hidden support of more UI widgets likes tabs, why can't they just update GUIDE and bring it.them into the modern age? Yair Altman does more in one blog post than TMW does in each year's paired releases to make GUIs better in Matlab!
  • UNICODE support -- why is TMW so far behind on this!?
  • Graphics quality -- graphics and text should be anti aliased by default and better composited, the pixel vomit is unacceptable on such an expensive product and one where its competitors are so ahead in this regard.
  • Poor OS X support. Failure to copy vector figures to clipboard is my biggest gripe.
  9 Comments
Steven Lord
Steven Lord on 10 Mar 2022
According to the release R2022a Release Notes, "MATLAB now uses UTF-8 as its system encoding on Windows®, completing the adoption of Unicode® across all supported platforms."

Sign in to comment.


Jan
Jan on 16 Feb 2011
Using a C-compiler not included in the list of known compilers is horrible. "mex -setup" calls an M-file, which calls a PERL script, which creates a DOS batch file, which is interpreted by another PERL script, which calls the compiler through the command line interface.
Strange. A tiny M-file could create the same command line call to the compiler also. But it would be much easier to adjust it to a different compiler.
  6 Comments
Praveen Kumar
Praveen Kumar on 24 Jun 2019
Edited: Praveen Kumar on 24 Jun 2019
I had two subsystems(A and B). I want B inports which are conncected to which outports in A. Any ideas.

Sign in to comment.


David Young
David Young on 28 Sep 2011
Overriding subsref and subsasgn in a class is spectacularly awkward.
The problem is this. Suppose you override subsref in order to change behaviour of obj(...). Then your subsref is also called for the syntax obj.propname. In order for it to handle this correctly (i.e. behave the same as the built-in subsref) it has to reimplement all the checks for access protections that are normally done by the system. For just how problematic this is, look at Daniel's answer to my question here.
Apart from this major difficulty, it's also inefficient for every subsref to have to switch on the indexing type ('.', '()', or '{}') on every call, and for the system to have to build a struct that includes the indexing type as well as the indexes.
As far as I can see, it would be so much better if the different indexing syntaxes called three different methods.
  5 Comments
Steven Lord
Steven Lord on 22 Sep 2022
In release R2022b the matlab.mixin.indexing.RedefinesDot class has two new methods that allow you to implement cases like obj(index).property = value. See the Release Notes for more information.

Sign in to comment.


Oliver Woodford
Oliver Woodford on 16 Feb 2011
It's very expensive (unless you're a student), especially if you use lots of toolboxes. Fortunately my company pays :), but if I start my own company I'll think twice about (ok, before) buying MATLAB.
  16 Comments
Chris van Halewyn
Chris van Halewyn on 6 May 2020
Yep. Me too! I've got a Nexys4 board (£200 -not $33,000!) that I got because it is recommended for education/training and got Vivado (free) to program it. Vivado calls out for Matlab HDL tools on installation but they are not available under the home licence which would have been so cool...
Matlab, please sort out home licensing for HDL tools. It's time.

Sign in to comment.


Dan
Dan on 2 May 2017
Functions and classes defined within a package should not have to import the package or refer to other members of the package with the package name ... the import should be automatic ...
Given the requirement to refer to the local package name within the class or function definitions ...
  • It is difficult to rename the package
  • It is difficult to place the package within another package
  • It clutters up the function and class code with import calls ...
Please fix...

Robert Cumming
Robert Cumming on 16 Feb 2011
plot legends are not always placed in the "best" position - quite often its right slap bang on top of the data...
  2 Comments
Matt J
Matt J on 13 Nov 2018
You can, but shouldn't the default legend position be somewhere not covering data?

Sign in to comment.


Sean
Sean on 27 Sep 2011
I would love to just write x++; instead of x = x + 1;
  10 Comments
Rik
Rik on 25 Oct 2022
I didn't ask the question, as you may have noticed. I just suggested that if you want people to actually listen to you, you might want to soften your tone. Your comments read to me like insults, which I hope is not your intention.
I am not familiar with the name Oxygen as a programming language/tool. However, GNU Octave is not phishing about for programs that support auto-increments. It is a very specific example, as GNU Octave is a 'mostly Matlab-compatible' program. In general, differences between Octave and Matlab are treated as bugs. You should think of Octave as the thing closest to a drop-in replacement for Matlab as is possible. So it actually is a valid point of comparison.

Sign in to comment.


Csaba
Csaba on 4 Dec 2013
My current frustration is with the Matlab editor: when the same M-script source is open in both the Matlab editor and another code editor (certain things are more efficient in the other editor), and the Matlab editor detects a change that was made to the file outside, it reloads (which is correct) - but it also forgets about all location information from before the reload, and jumps to the beginning of the file.
I would expect this is just an oversight (how hard would it be to remember the line at which the cursor was before reload - even if the code change that triggered the reload shifted content, most of the time this would be by only a few lines or pages, still much better than starting from the top of the file every_time_ ...).
And if that's not feasible, at least letting the bookmarks survive the reload would be a reasonable work-around, but sadly no, they are erased as part of the reload as well.
Am I the only one having trouble with this?
  4 Comments
Samuel Gray
Samuel Gray on 24 Oct 2022
Edited: Samuel Gray on 24 Oct 2022
"yes, my Students also get the Same issues, I need some Guidence on this
Regards,"
...don't you hae to run GUIDE in Matlab, just to use it?
Um, the MATLAB GUI is the product of a program that runs in Matlab
just as GUIDE is. It's just that the MATLAB GUI is run by Matlab when it launches.

Sign in to comment.


Oliver Woodford
Oliver Woodford on 16 Feb 2011
MATLAB is lacking tools for saving movies in decent compressed video formats (e.g. MPEG4, H.264 etc.). Currently I find myself saving a huge list of PNG files, then converting these to a video in an external application, which is far from ideal.
  4 Comments
Rik
Rik on 25 Oct 2022
Did you read the page you linked to? The list of supported codecs doesn't contain H.264. That isn't strange, because (based on the formatting of the page) the documentation you linked to is for Matlab 6.5 or older, which predates H.264 by 2 years.
The point wasn't that you can't write a movie file with Matlab, but that you can't use a codec with a decent compression. At least this was true in 2011.

Sign in to comment.


Patrick
Patrick on 27 Oct 2011
The figure-export is a pain, if annotation are used they will move about, not all of them and not much and not to any order (at least nothing i could recognise) but sometimes a few mm in the odd direction.
  1 Comment
K E
K E on 25 Jul 2012
Also, quality of copied figures is poor (blurry lines/text) and requires workarounds like export_fig .

Sign in to comment.


Richard Finley
Richard Finley on 30 Jan 2012
I have been a licensed user of MATLAB for the past 20 years. I am also a big Mathematica user and sometimes use Maple and Mathcad and of course I love R and Python. I have enjoyed using MATLAB for my numerical work, but the licensing hassles have driven me to the point that I am considering just dropping it after all these years. I don't mind paying the (substantial) price for my license -- but then just let me do my work -- whether it is on my main desktop or my laptop. I used to just get the update CDs and my license number by email and no hassles. Are you really making more money by stopping piracy with all your licensing hassles? I doubt it. You are driving away your paying customers/user base. I sympathize with this (former) user: http://mybrainextension.blogspot.com/2011/07/aaaarrrrrrgh-matlab.html
  5 Comments

Sign in to comment.


Ian
Ian on 28 Mar 2011
Lack of OpenCL support: TMW forces us to depend firstly on a toolbox for this functionality, and secondly on the vendor lock-in using CUDA. Mathematica builds this in to its core, not some toolbox, and provides both CUDA and OpenCL support so we aren't forced to a single GPU vendor.
  6 Comments