MATLAB Answers

What frustrates you about MATLAB? #2

89 views (last 30 days)
Rik
Rik on 28 Jun 2020
Edited: Bruno Luong on 16 Oct 2020
Similar to what has happened with the wishlist threads (#1 #2 #3 #4 #5), the "what frustrates you about MATLAB" thread has become very large. This makes navigation difficult and increases page load times.
So here is the follow-up page.
What should you post where?
Wishlist threads (#1 #2 #3 #4 #5): bugs and feature requests for Matlab Answers
Frustation threads (#1 #2): frustations about usage and capabilities of Matlab itself
Missing feature threads (#1 #2): features that you whish Matlab would have had
@anyone posting a new thread when the last one gets too large (about 50 answers seems a reasonable limit per thread), please update this list in all last threads. (if you don't have editing privileges, just post a comment asking someone to do the edit)

  3 Comments

Ignatius Bramananditya Rivaldi
Frustration/suggestion:
Can Matlab editor be set to Windows Default Set keybindings on Linux by default? The thing is that Ctrl-C and Ctrl-V for copy and paste is the standard for GUI apps everywhere even in Linux and the default Emacs Default Set keybindings breaks that.
Its even a FAQ now:
Interesting quote from the second link:
When installed on Linux, the MATLAB Editor defaults to using Emacs style keyboard shortcuts (copy, past, etc.). This might be difficult for those new to Linux.
I have used desktop Linux for 5-6 years and I still find Matlab using Emacs keybindings surprising in a bad way
Walter Roberson
Walter Roberson on 9 Sep 2020
The thing is that Ctrl-C and Ctrl-V for copy and paste is the standard for GUI apps everywhere
Not on Mac, which uses ⌘-C and ⌘-V
Can Matlab editor be set to Windows Default Set keybindings on Linux by default?
Do you mean just for you (or for all people running MATLAB off of your installation)? Or do you mean that you want Mathworks to change the default ?
If you mean that you want Mathworks to change the default, I would not expect that to happen. emacs binding has been standard for Unix since at least 1983.
Steven Lord
Steven Lord on 9 Sep 2020
Expanding on Walter's comment, if you mean just for you see the "Keyboard Shortcuts Preferences" section on this documentation page.

Sign in to comment.

Answers (23)

Zoltán Csáti
Zoltán Csáti on 7 Aug 2020
Before I started using Python this year, I was a happy MATLAB user. I still like MATLAB because I am efficient in it, but here are some things I don't like about it. I will sometimes refer to Python because that's what I have experience with. I do not indend to start a flame war, especially because I see the merits in both languages.
  1. The community. There are some heavyweight MATLAB users (Walter Roberson, Image Analyst, John D'Errico, Jan, and I'm sure I missed many of you) who have immense knowledge and are also very active on MATLAB Answers. However, the forum is full of people whose posts do not show any research work. They expect complete solutions without showing any effort. When Python users raise issues on GitHub/Gitlab, etc., I don't have this feeling. Related: I also feel that the open-source nature of Python produces quality contributors.
  2. Lack of momentum. There are too many awesome projects that stop because the maintainer a) lost interest or b) left the university and has no access to MATLAB any more. Being closed-source really hampers the development.
  3. Ecosystem. I can only talk about areas I experienced, but Python (and now Julia) has such an extensive ecosystem and an active and responsive community, that one does not have to start reimplementing everything. MATLAB toolboxes sometimes provide a solution but university clusters often miss many toolboxes.
  4. Editor. The MATLAB Editor (the classical one, not the Live Editor) is useful but misses some features that others have. As if the MATLAB linter was available for other editors too!
  5. OOP. Reading the threads, people criticize the OOP syntax of MATLAB. To me, it is not a problem (Python also explicitly needs the instance as the first method parameter), but custom types are really slow in MATLAB. I would love to have (nearly) costless abstraction as in Julia or in C++; it happened to be that because of speed issues I had to sacrifice readability and turn to built-in types to achieve reasonable speed.
  6. Lack of efficient data structures. Complex problems require fast hash maps, linked lists and other data structures.
  7. Parallelism. The fact that open source tools support many levels of parallelism and MATLAB offers it in a toolbox is a big drawback. Moreover, launching parallel pools open new MATLAB workers that spend about 700 MB each! I didn't see any efficient massively parallel applications done by MATLAB.
  8. Invoking C code, let alone C++, is difficult with the MEX interface. The really powerful MEX commands (see on UndocumentedMATLAB) are not documented and change all the time. You also cannot debug MEX code with MATLAB Editor.
  9. To generate standalone application, you need an additional toolbox. Moreover, the MATLAB runtime is huge, so for a simple application, you have to download hundreds of megabytes. The startup time is also very slow.
  10. TMW's focus on shiny features and the toolboxes. The core numerical algorithms changed very little in the past 20 years. To me, MATLAB's focus should be on computational mathematics (as it originally was) and not polishing the IDE and other secondary issues. Yes, they are important, but supporting tensor operations, introducing state-of-the-art ODE solvers (as Julia's wonderful DifferentialEquations.jl) would be more useful for a scientist. I would just highlight git support. If someone has to solve complex git-related tasks, they will use a feature-rich editor (such as SmartGit) or will use the command line. What I want to point out is that TMW spends its workforce on implementing many things into MATLAB that simply cannot compete with specialized tools (diff tools, git support, etc.). If they concentrated on the core of MATLAB (things that are unrelated to the IDE), all people could profit from it. I saw the tendency that computational scientists use MATLAB less and less because they need the features that other languages' rich ecosystems provide. Honestly, I am deeply disappointed that TMW tries to satisfy novice engineers instead of providing powerful tools. You are losing hardcore programmers and scientists this way (cf. points 1-3). I follow the release notes and bitterly recognize that in the last decade, almost no improvement was made for the core. Just the superficial features... Sigh...
I didn't write about the merits of MATLAB (there are plenty) because the question was about the negative aspects. My heart breaks to see how MATLAB fails to catch up with the state-of-the-art of computational science.

  2 Comments

dpb
dpb on 7 Aug 2020
I'm too old an fogey to begin to pick up anything new so I can't really comment on the Python or Julia parts, etc., but I am in whole-hearted agreement with essentially all 10 items but particularly #10 and as longtime Fortran practitioner the near total abandonment of Fortran for mex.

Sign in to comment.


John D'Errico
John D'Errico on 28 Jun 2020
Edited: John D'Errico on 28 Jun 2020
That the mind reading toolbox has never become available for general use? ;-)
Truly, that scares me just a bit if it ever truly became a reality, so not a real frustration.
So what frustrates me? As new capabilities are introduced into new releases, we find that the old tools stay around. This is necessary for backwards capability. And backwards capability is one of the things that makes MATLAB truly great, that I have nearly 35 year old code that still runs. But that leaves us with bloat, in the sense that we now have multiple tools with similar capability. New users find more stuff to learn. The result is a language that is not as clean, not as easy to use as I want.
For example, we have both strfind and findstr. If you read the help for findstr...
findstr is not recommended. Use CONTAINS or STRFIND instead.
But findstr remains in our universe. One day it might disappear. But when you want to use a code to do that, does anybody really remember which of findstr or strfind they SHOULD use? Which is the recommended code, which is deprecated?
I can offer other examples. We have delaunay, delaunayn, delaunayTriangulation, and triangulation. We even have alphaShape, which can be made to produce a delaunay triangulation if you know how to use it. But not all of those tools are truly compatible with each other. What are the differences? Sigh.
How about interpolation? There is the interp1/interp2/interp3/interpn family. But then we have griddedInterpolant. A different tool. Not compatible with the others. And griddedInterpolant requires an ndgrid call to use it, whereas the others rely on meshgrid. Sigh. While I prefer ndgrid to meshgrid because of the x/y inversion issue when you go to n dimensions that surely confuses people, but this difference will surely cause problems.
Likewise, for scattered interpolation, we have griddata. But then we have griddatan. We have scatteredInterpolant. And as confusing, there is no griddata3. griddata works in 2 or 3 dimensions. So they do similar things, but new users then need to learn about 3 tools.
There are other examples. For example, some toolboxes introduce capabilities that already exist in MATLAB. So if you have the correct toolbox, then you get a tool that replicates functionality that already exists. Yes, the new tool in that toolbox probably adds some new feature the author thought was useful. But again you have a source of confusion, especially a problem for newer users. An example of this is xcorr versus crosscorr. You get one from a toolbox.
Yes. I understand the reason for the various tools. But the result ends up as bloat. If I want to do X, then there should be a direct way to do X, ONE way. Not 10 ways, all of which have subtly different interfaces.
Is any of this really a major problem? Well, no. You learn how to use what solves your problem. And gradually, you learn about the alternatives.
I still love to use MATLAB. I just wish it were slightly more perfect.

  8 Comments

Show 5 older comments
John D'Errico
John D'Errico on 29 Jun 2020
But that is the problem. I truly want MATLAB to improve. Were it to stay stagnant would mean it would be now long forgotten, just another dead programming language, remembered fondly by some, and as a joke to others.
I just want it to rise fully formed from birth, perfect in every way. And THEN it can stay stagnant, as how can you improve on perfection? Hey, dreams usually are a bit silly.
dpb
dpb on 29 Jun 2020
I wasn't suggesting the main product remain stagnant but that TMW fork the development and let those with legacy apps that need that backward compatibility have a version for that purpose (basically only for that purpose altho I don't know I'd go so far as to prevent writing new stuff with it; maybe for noncommercial work only as part of license for new development.
Then the forked version could be the Phoenix... :)
Sindar
Sindar on 19 Aug 2020
One related thing that I noticed recently is some stuff with the documentation search:
Great: "not recommended; use histogram instead" is right there
not-so-great: histogram is not one of the top results
Is there a way to boost the listing of common & current functions?

Sign in to comment.


dpb
dpb on 30 Jun 2020
Edited: dpb on 3 Jul 2020
Switching named parameter names for newer functions to not be compatible with old -- from the time of textscan on which goes way back, the parameter was 'headerlines' for the number of headerlines to skip. This followed w/ readtable at least; I forget about who else, but is well-established tradition.
Then up and come along the new readtimetable, readmatrix and friends and voila! it's now 'NumHeaderLines' . While perhaps could have been argued back in the beginning, once it was established, there's no reason to change just to change.
I will grant that some (I haven't tested them exhaustively, may be all) at least also recognize 'headerlines' as well -- that's a start.
But, it isn't reciprocal--the old guys weren't patched to accept the new parameter name so if one gets trained to use the new, then have typos for the previous functions.
Where are the user-interface design folks in the internal design reviews that let this happen??? Doesn't TMW have a specific part of the design review team to try to create and enforce consistency?

  0 Comments

Sign in to comment.


Andres
Andres on 6 Jul 2020
The year is 2020, and although Matlab may do a good job with autoparallelization, I find it frustrating that parfor, parsim etc. are still reserved to an extra toolbox. Parallel computing is just state of the art today.
Considering the competition, I think it would be a smart move to include at least some limited features of the Parallel Computing Toolbox into plain Matlab/Simulink. This could even promote the toolbox to plain Matlab users.

  0 Comments

Sign in to comment.


dpb
dpb on 29 Jun 2020
Edited: dpb on 29 Jun 2020
Introducing all these mostly opaque graphics objects that users can't get to to fix up for cases not foreseen by TMW.
bar is another abomination have complained about for 25+ years -- there are any number of threads on Answers about annotation for it that have answered over and over.
Not to mention hatching patterns and a much larger supply of prebuilt colors/patterns for automagic cycling...
And last, but not least, the butt-ugly "0" at the origin of the default axes instead of matching the rest of the formatting..yes, it comes that way automagically because of the default '%g' but it's still ugly as sin. :)

  1 Comment

dpb
dpb on 7 Aug 2020
"bar is another abomination have complained about for 25+ years -- "
I just saw this complaint from earlier this year next door to the above--I will give TMW credit they did finally uncover the xData position so one can label bars without having to use hidden properties. This is a far cry from having a full set of properties settable for the bars including labels, location, etc., etc., that would be the (imo) proper implementation.

Sign in to comment.


Bruno Luong
Bruno Luong on 26 Jul 2020
FIND(..., 0) throw an error.
>> x=rand(1,10)>0.6
x =
1×10 logical array
1 0 1 1 1 0 0 0 1 1
>> find(x)
ans =
1 3 4 5 9 10
>> find(x,2)
ans =
1 3
>> find(x,1)
ans =
1
>> find(x,0)
Error using find
Second argument must be a positive scalar integer.
Why MATLAB prefers to throw an error rather than returns an empty array is a mystery to me.

  2 Comments

Rik
Rik on 26 Jul 2020
What would be the use case for find(___,0)?
Bruno Luong
Bruno Luong on 26 Jul 2020
Typically when N argument is from some calculation that can be 0 or not.
As example I just bumped into the ERROR when I do this code, I must redefine FIND that returns [] when N is 0 (see MYFIND()) as workaround, that is silly.
Beside that it make perfectly sence mathematically to returns [] for N == 0. The fact that FIND(...,0) must be [] is similar to these
  • SUM([]) == 0,
  • PROD([])==1,
  • FACTORIAL(0) == 1,
  • ZEROS(0) == []
which are all implemented as such.

Sign in to comment.


Paul
Paul on 3 Jul 2020
When the debugger stops at a breakpoint, why does the focus and cursor go to the breakpoint, as opposed to the command line? I always start typing and corrupt the file being debugged. Is there any utility in having the cursor and control at the breakpoint?

  2 Comments

Steven Lord
Steven Lord on 4 Jul 2020
Does deselecting the "Automatically open files when MATLAB reaches a breakpoint" preference in the Editor/Debugger Preferences do what you want?
Paul
Paul on 4 Jul 2020
Yes, yes it does! Thanks.
Question: I can see why a user would want the file opened with an indication of which break point is reached, but is there any utility in having the focus and the cursor at that point? Or is it just a thing that opening the file can't be decoupled from focus and cursor location?

Sign in to comment.


Paul
Paul on 13 Jul 2020
The documentation. I hate to say that because I do think that TMW puts a lot of effort into the documentation, which makes it all the more frustrating when
a) I can't find something that I think should really be in there (and may be, but just not easily found)
b) When I can't systematically search through the contents to find the right page. I run into the issue all the time in the Simulink documentation, and the most frustrating think about this is that I distinctly recall that at some point in the past navigating the contents was simple and intuitive and quick.
Obviously, the documentation is easy to use when one just wants to look up a function or a block. So I'm really talking about those portions of the documentation that need to explain concepts.
As an example, I was just poking around in the Control System Toolbox looking for a discussion on specified vs. unspecified sample times for discrete time systems. How does that property affect results? What about connecting models with specified and unspecified sample times? When to use one vs the other? Thinks like that. Couldn't find it, though it seems to me that's pretty basic stuff for this toolbox.

  1 Comment

per isakson
per isakson on 24 Jul 2020
I couldn't agree more.
Currently, I try to understand what effect Enabled true/false has on the behavior of a AddOns Toolbox. I have both a sandbox and an installed AddOns of my toolbox on my desktop. What surprices are I in for?
So far I only learned that Enabled means enabled.

Sign in to comment.


Bruno Luong
Bruno Luong on 24 Jul 2020
Edited: Bruno Luong on 24 Jul 2020
If would be greak MATLAB can do auto-expansion-like for array concatenation
>> A=1:4
A =
1 2 3 4
>> B=[0;
A]
B =
0 0 0 0
1 2 3 4
"Array" means numercial/cell/struct arrays, string and table

  3 Comments

Rik
Rik on 24 Jul 2020
I bet it would be very tricky to figure out a robust method to determine which value should be expanded, but this would be a very useful feature, especially if you are filling a large array with sub-arrays.
Walter Roberson
Walter Roberson on 24 Jul 2020
I find that automatic zero expansion in particular is what I encounter the most often, with the occasional ones expansion and the occasional nan expansion. At the moment, I cannot bring to mind times that I used anything other than those as mass padding. I guess I must have used 255 at some point though.
Bruno Luong
Bruno Luong on 24 Jul 2020
@Rik: Well, no it's quite easy. The rule is exactly like auto-expansion and bsxfun. The dimension with length==1 wil be expanded to match the other, so more complicated than this simple rule. I have done here BSXCAT.
My function is not too fast, cannot be invoked with bracket syntax, no benefit from jit accelerator. All that can be handled if TMW implements it.

Sign in to comment.


madhan ravi
madhan ravi on 26 Jul 2020
If find() operates along dimensions would make things a lot easier.

  8 Comments

Show 5 older comments
Image Analyst
Image Analyst on 26 Jul 2020
madhan, can you give a small example matrix and what you'd expect the output to be if you used find() in the two directions (vertical and horizontal)?
Bruno Luong
Bruno Luong on 26 Jul 2020
Similar to CELLFUN, ARRAYFUN that uses 'uniform' TRUE/FALSE input to let user decide.
In case of FIND, it can be even automatically decided: if N argument is provided output is an index ARRAY, otherwise it returns as CELL. To be precise one can imagine as the following:
For p-dimensional A of size (n1 x n2 x ... x nd x ... x np)
FIND(A, N, 'first'/'last', dim) returns numerical array (n1 x n2 x ... x N x ... np). The ouput result contains 0s in trailing in case there are less than N indexes found along the dimension d. I think 0s is better than NaN, since it would be similar to the way ISMEMBER, UNIQUE deal with non-existing element. It also doesn't have speed penalty as with NaN processing.
FIND(A, [], [], dim) returns cell-array (n1 x n2 x ... x 1 x ... np) where each cell element is the vector array of indices of suitable length.
User might eventually force CELL output even when N is provided by set 'Uniform' flag to FALSE.
Bruno Luong
Bruno Luong on 26 Jul 2020
@Image Analyst "madhan, can you give a small example matrix and what you'd expect the output to be if you used find() in the two directions (vertical and horizontal"
To me pretty similar to FIND/IND2SUB, it returns according to the number of outputs at the caller
M = rand(2,3)>0.5
[linearidx] = find(M)
[row,col] = find(M)
% or more generic
A = rand(2,3,4);
[i] = ind2sub(size(A), 20); % A is considered as 1 x 24
[i,j] = ind2sub(size(A), 20); % A is considered as 2 x 12
[i,j,k] = ind2sub(size(A), 20); % A consider as 2 x 3 x 4

Sign in to comment.


per isakson
per isakson on 17 Aug 2020
Edited: per isakson on 17 Aug 2020
Which do you prefer 'MultipleDelimsAsOne' or 'CollapseDelimiters'? Now and then I use the correct name in the wrong place.
I wish: a popup asking me whether I want the other. That would save me a bit of frustration and lower my blood pressure by several pascal.

  0 Comments

Sign in to comment.


Sindar
Sindar on 19 Sep 2020
Edited: Sindar on 20 Sep 2020
Livescript complaints
First off, they've come a long way since I tried them on release. But, there are still some issues:
Dropdown controls
  • The "item value" box is tiny
  • Keeping track of item label - item value pairs is unnecessarily complicated by the vertical arrangement (vs a table-type view)
  • poor auto-updating of labels/values when the other is changed
  • pasting code into the value box often separates lines unexpectedly (it seems to sometimes cut at mid-line whitespace)
output character limits
there seems to be no way to convince the livescript to print characters beyond a certain limit. For example,
for ind=1:10000
fprintf('Sample %d has been processed\n',ind)
end
and
for ind=1:10000
disp(['Sample ', int2str(ind), ' has been processed'])
end
both print only to
Sample 1971 has been processed
Sample...
Copying Output
  • cannot select text in output
  • copied text does not always match displayed text (e.g., copied cell arrays say "1×2 double" while output displays the numbers)
  • unclear rules (moments ago, I learned that what's copied depends on where in the output box I right click)
Export to PDF
  • can't read long code lines
  • displays variables differently (e.g., doesn't truncate table rows)
  • doesn't warn if code has been changed without re-running (so code and output don't match)
Minor gripes
  • add "run from beginning to current cell"
  • code prediction seems better than for normal scripts (even aside from the fact that variables are more often already evaluated when working with live scripts)
  • not enough heading levels
  • I'd prefer controls default to not running anything
  • "unable to run code analysis... is an invalid Matlab file name."
  • no way to collapse output (vs clearing)
  • no way to fully un-collapse output (e.g., display full table instead of scrolling)
  • figures are saved with "Visible" = off, so they don't open as expected

  5 Comments

Show 2 older comments
Mario Malic
Mario Malic on 19 Sep 2020
Oh, you ment this box, i misunderstood.
If you want to change the Values,Items, it's best to use startupFcn callback, in which you specify the values. In this window, I think newline works (enter button), so values can be like this (my dropdown menu doesn't look the same though) What version do you use?
val1
asdf
probably*crazy%#"$!chars*!#=worktoo
If you mean, by changing the component name such as app.NameDropDown into another one, most of code (if not all) will change accordingly, at least in my case, I use R2020a.
Sindar
Sindar on 19 Sep 2020
I'm also in 2020a. Are you in a live script or the app designer (I haven't used it)? I'm not aware of a programmatic way to control these live script control boxes.
Yes, newline separates items. Visually, this isn't helpful when value expressions wrap to new lines. Mechanically, this can be a problem when pasted text is interpreted as multiple lines (even when it is not)
Mario Malic
Mario Malic on 19 Sep 2020
Yikes, I saw dropdown and then immediately thought of AppDesigner, sorry about this.

Sign in to comment.


Luis Ruiz
Luis Ruiz on 3 Jul 2020
Edited: per isakson on 24 Jul 2020
Promote parameters to signals in Simulink models.
It should be possible through some kind of mask. At work, we are running through a problem where we need to change model parameters at run time, one solution is to use set_param, but that makes the simulation dreadfully slow.
The opposite (turning a signal to a parameter) is possible using constant blocks and masks.
I read the limitation comes from how parameters are used inside the models, but this functionality will help developers a lot.

  0 Comments

Sign in to comment.


madhan ravi
madhan ravi on 14 Jul 2020
Edited: madhan ravi on 14 Jul 2020
If colon operator supports an array input it would be nice:
A = 1:10;
A(:) : A(:)*100 % automatically converting each row to cell if number of elements differ

  4 Comments

Show 1 older comment
madhan ravi
madhan ravi on 24 Jul 2020
Ah I see , it could raise many ambiguities. Or there could be an additional argument in the colon() like 'nonuniform' for example.
Rik
Rik on 24 Jul 2020
@Madhan, so you mean something like a shortcut for meshgrid followed by arrayfun? It would be a neat trick to drop on an unsuspecting new user on this forum ;)

Sign in to comment.



Bruno Luong
Bruno Luong on 21 Aug 2020
Edited: Bruno Luong on 21 Aug 2020
scatteredInterpolant miss a 2 C^2 of methods supported by griddata 'cublic' and especially 'v4'.

  0 Comments

Sign in to comment.


Michal Kvasnicka
Michal Kvasnicka on 9 Sep 2020
Edited: Michal Kvasnicka on 9 Sep 2020
Do you really think, that these threads are read by MTW people??? I am not sure!!!
TMW definitely choose the commercial way of its bussines ... so plenty of toolboxes with all whistles and bells, but all using the matlab engine which definitely needs significant development to catch current new trends in computer science.
Just a two examples (from many others):
1. ODEs ... try to compare matlab ODEs capabilities and performance with Julia's wonderful DifferentialEquations.jl. MATLAB shows really terrible performance and flexibility in this case.
2. VPA ... try to compare VPA and Advanpix MCT toolbox. Again, the MATLAB vpa functionality and performance are really terrible. Nice speed benchmark against MAtlab VPA, Julia, Wolfram Mathematica and several Python libraries (mpmath, flint+arb) for extended precision computations. The page is in Japanese but plots and tables are easy to understand.
3. and so on ... and so on ...
I think MATLAB is still a very unique and powerful tool for numerical calculations, but it is definitely losing strength and becoming a monster standing on clay feet.

  2 Comments

Walter Roberson
Walter Roberson on 9 Sep 2020
Do you really think, that these threads are reading by MTW people??? I am not sure!!!
I know for a fact that these threads are read and considered by Mathworks employees.
Walter Roberson
Walter Roberson on 9 Sep 2020
ODEs are not part of the MATLAB engine.
Meanwhile, Mathworks has been working on improving the performance of the MATLAB engine.
I do think they should be improving the performance of the MuPAD engine, perhaps by adding multithreading (I do not know how much work the existing engine would take to make the routines thread-safe.)

Sign in to comment.


Phong Pham
Phong Pham on 13 Sep 2020
Edited: Phong Pham on 13 Sep 2020
My only feeling while using Matlab is purely amazement. Given that it has such a long development time, I am amazed that it is such a poor execuse for an IDE/execution environment, and even amazed that people actually paid for this.
Come on, with all the money people have been paying you, at least make a decent UI with decent color scheme support. Even eclipse, which is free, supports this.
I don't feel the need to mention the lacking of the language and the standard libraries itself as it's likely a legacy thing that you guys either have to keep for legacy support or are too lazy to do anything about. Either way, I feel like I am writing code with both my hands and feets tied and only allowed to use my tongue to type.
I am forced to used this for my course (student license of course), nothing else. Never again.

  1 Comment

Walter Roberson
Walter Roberson on 13 Sep 2020
Eclipse has the resources of IBM behind it. (I know some of the key people who work on it.)

Sign in to comment.


Rik
Rik on 28 Sep 2020
Comment posted by John in the previous thread:
Matlab should 'update' the new version instead of installing the new version. The reconfiguration is a nighmare because it's done only once a year or so. The extreme example is firefox, which updates once or twice a day. The users don't need to reconfigure anything.
At least matlab should provide a choice with every new version: new installtion or updating on existing version (and keep all configurations as is).

  3 Comments

Rik
Rik on 28 Sep 2020
The installer already grabs a lot of settings from the previous release (color scheme e.g.). I was also greeted by a popup from the Add-On Manager asking if I wanted to install the previously installed support packages.
I suppose that other settings (e.g. the path) could be ported as well.
I doubt they will fundamentally change this anywhere in the foreseable future, but what did you have in mind? There are already updates (which are the bugfixes), so renaming the releases (which introduce new features) to updates will be very confusing.
Sindar
Sindar on 28 Sep 2020
Additionally, it is often a good idea to keep old versions of Matlab around until you're sure whether the new release breaks anything. Treating it as an update wouldn't make sense.
Walter Roberson
Walter Roberson on 28 Sep 2020
The extreme example is firefox, which updates once or twice a day. The users don't need to reconfigure anything.
Every time firefox installs a new Major version, it creates a new User Profile which it does not initialize from the old one. This messes up my careful configuration, and I have to spend the next while fixing it. It's a big nuisance. It does not warn you in advance it is going to happen, and it is not optional.

Sign in to comment.


Kenn Sebesta
Kenn Sebesta on 9 Oct 2020
Edited: Kenn Sebesta on 9 Oct 2020
The number one issue I have with Matlab is the way in which implicit expansion's syntax was implemented. Perhaps there's some incredibly subtle thinking behind why overloading linear algebra operators made sense, but I haven't seen it. It's not that I haven't agreed with the reasoning, it's that I haven't seen any reasoning at all. My recollection is discovering it when someone complained that it wasn't even in the release notes and that it is, in effect, a breaking[*] change.
Issues like https://www.mathworks.com/matlabcentral/answers/318495-deactivation-switch-for-implicit-expansion#comment_699667 show the ease with which the problem arises. It would have been far preferable to have an explicit operator for implicit expansion, such as `@`, e.g. @+, @-, etc...
[*] breaking because it breaks the rules of linear algebra, which is that `a + b` is only valid if both a and b have the same dimension.

  34 Comments

Bruno Luong
Bruno Luong on 10 Oct 2020
And the only example that I have seen is
norm(vcol + v_unintended_row)
People who makes such mistake (or the opposite) gets quite angry with MATLAB auto-expansion for some reason (well I guess they spend a big chunk of time before figure it out the silent bug).
Michal Kvasnicka
Michal Kvasnicka on 10 Oct 2020
Yes, because the function norm() is defined for both the vector and the matrix and always produce scalar output. In principle, every functions with this input/output specification are possible candidates for complains.
Paul
Paul on 10 Oct 2020
Here are some other examples ...
size(vcol + v_unintended_row)
ndims(vcol + v_unintended_row)
max(svd(vcol + v_unintended_row))

Sign in to comment.


Eric Bender
Eric Bender on 12 Oct 2020
I've created an enumeration class by use of the following command:
Simulink.defineIntEnumType('epb_parkbrakeswitch_SL_T','PB_SWITCH_NEUTRAL','PB_SWITCH_UP','PB_SWITCH_DOWN'},[0,1,2],'AddClassNameToEnumNames',true,'HeaderFile','Rte_Type.h','DataScope','Exported');
I have workspace items loaded that make use of this class. I want to save my workspace to a MAT file which will also include this enum class information. I don't currently see that this is possible. Our company's system team doesn't want separate M-FIles for each class but would like it all contained in one file. Currently I'm accomplishing this by have an M-File with this enumeration defintion at the top followed by the variable usages of it. This works, however some of the project's M-File sizes are getting pretty large and it takes awhile to save/load as an M-File. Wish there was a way for enum class defintions to be able to be saved in a MAT file, much faster to load and save.

  0 Comments

Sign in to comment.


Bruno Luong
Bruno Luong on 16 Oct 2020
The camorbit/camlight (camera toolbar) that makes the 3D graphic rotation turns forever when I swing with the mouse.
It's fun to see this gadget once or twice but if some calculation is going in parallel, this is NOT desirable that some animation takes a hand on the runing thread, and there is not obviousway to disable this feature beside overloading the camlight.m

  0 Comments

Sign in to comment.


Bruno Luong
Bruno Luong on 16 Oct 2020
Edited: Bruno Luong on 16 Oct 2020
MATLAB startup accelerator.
I just don't like my computer being polluted by some services installed in the task scheduler. I prefer it''s OFF by default. More and more people have SSD in the computer, the accelerator has no visible effect even when it's on.

  0 Comments

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!

Translated by