[DEPRECATED] What frustrates you about MATLAB?

203 views (last 30 days)
Oliver Woodford
Oliver Woodford on 16 Feb 2011
Edited: Rik on 13 Jun 2023
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
DGM
DGM on 10 Dec 2022
Oh. I was afraid that's what happened.
:( seconded
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
Oliver Woodford
Oliver Woodford on 13 Apr 2015
As of R2014b, you can have a separate colormap per axes.
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
Walter Roberson
Walter Roberson on 28 Jun 2017
Note: Unicode support in plots was added in R2014b. However, there is no obvious way to add Unicode in Latex.
Note: anti-aliasing of lines and text was added in HG2.
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
dpb
dpb on 13 Nov 2018
At least as convoluted still and nearly impossible to make use of anything other than the one or two "blessed" compilers --
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 23 Sep 2021
As of release R2021b there are three subclasses from which your classes can inherit, one for each type of indexing (parentheses, dot, brace.) Classes can inherit from zero, one, two, or all three of the classes depending on what type(s) of indexing you want to customize. See the Release Notes for more information.
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
Asif
Asif on 23 Oct 2019
Edited: Asif on 23 Oct 2019
It doesn't make sense how the Home and Student licenses are not eligible to purchase the HDL coder and HDL verifier add-ons. Students and hobbiests would easily use these for FPGA and embedded projects.
Supported boards include Digilent's low-cost sub $250 options. If the HDL add-ons were available and priced similarly, I'd gladly fork over more money to Mathworks :).
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...
  3 Comments
Matt J
Matt J on 13 Nov 2018
You can, but shouldn't the default legend position be somewhere not covering data?
DB
DB on 13 Jun 2023
Actually, you can set the best position automatically by using the option 'best':
legend([plotxy],'plot of y over x ','Location','best')

Sign in to comment.


Sean
Sean on 27 Sep 2011
I would love to just write x++; instead of x = x + 1;
  10 Comments
Samuel Gray
Samuel Gray on 24 Oct 2022
You asked the question...deal with the answers. Don't reject them out of hand.
Oxygen is decidedly not Matlab and we don't need to cast about for other programs that do support the auto-increment in order to know and understand that Matlab does not. I'm sure there's a long list of such features.
"What frustrates you about Matlab?" I have to pay for it...
that it has any anti-piracy protections whatsoever...
that it's not open-source...
the list goes on
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
Steven Lord
Steven Lord on 10 Mar 2022
The release R2021b Release Notes indicates that MATLAB maintains bookmarks after closing a file. I'm not sure whether or not they persist across MATLAB sessions; I haven't tried.
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
Mace
Mace on 7 Oct 2015
I agree. License hassles are the main reason why I'm switching to R. I constantly am interrupted by license issues. E.g. I drop wifi or just vpn and matlab does not execute commands without even notifying about it - it just does nothing while I think it's computing. Or I wake up my mac and before it connects to wifi matlab already shuts down saying it lost connection to the license server.

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
Curtis
Curtis on 20 Jun 2013
They've had CUDA support for years and STILL the only way to get ANY OpenCL implementation is with third party plug-ins. Hopefully the massive hiring TMW is doing will start to change things soon.