現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
[DEPRECATED] What frustrates you about MATLAB?
357 ビュー (過去 30 日間)
古いコメントを表示
Oliver Woodford
2011 年 2 月 16 日
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 件のコメント
Michelle Hirsch
2011 年 2 月 16 日
Interesting start of a thread, Oliver. I encourage all posters to write a single point per answer to make it easier for others to vote up answers they agree with.
Oliver Woodford
2011 年 2 月 16 日
There will, of course, be no accepted answer. It's about what you think.
Kenneth Eaton
2011 年 2 月 16 日
It sounds like this question may overlap to some degree with this previous one: http://www.mathworks.com/matlabcentral/answers/1325-what-s-missing-from-matlab
Oliver Woodford
2011 年 2 月 16 日
Yes, somewhat, but not entirely. This is "What's missing + what's wrong?". My answer on cost is an example of the latter. But the other question is more positively phrased, so will undoubtedly get the lion's share of responses from loyal MATLABers. :)
Jan
2013 年 4 月 2 日
@Ozan Oguz: Please post an answer in the answer section, not as comment.
I'm very surprised, because it did not find any better documentation and more useful examples in any software package I've tested. Please add some explicit points for criticism.
Joseph Areeda
2015 年 5 月 31 日
My biggest frustration is the level of backwards compatibility. We have a GUIDE based application shared among many users in an international collaboration. It has been used since about 2005, I started in 2011. Probably the most common user complaint is I loaded a new version of Matlab and your program doesn't work anymore.
2014b was a big changed that was absolutely necessary to make immediately because it was the only one that worked on Mac Yosemite.
Now the same code won't run on 2015a. I understand the reasons for incompatible upgrades, I just wish they didn't happen so often.
Joe
Walter Roberson
2015 年 6 月 1 日
I have R2014a working on Yosemite. Note: I am not using a Retina display.
Walter Roberson
2015 年 6 月 1 日
I avoid GUIDE based GUIs. I wrote my own layout routines to do layout at run-time.
Tim Bigelow
2016 年 6 月 23 日
working with the variable page is extremely annoying! None of these really simple functions work at all well:
deleting a variable renaming a variable trying to delete one column in an array variable- I've yet to figure out how to make that happen duplicating a variable with a new name- and the help file for such basic things gives no clue?
Tim Bigelow
2016 年 6 月 23 日
the variable page is useless! How much does this software cost? Has nobody else figured out such simple stuff is non-functional?
Cant enter new numbers Can't enter more columns in the column number entry area
Can't copy and paste in cells
When numbers are entered manually, they are justified left or right?
why not all the same?
why do i have to enter two returns just to get one return in this suggestion page?
Stephen23
2016 年 6 月 23 日
@Tim Bigelow: What do you mean by the "variable page" This is not mentioned anywhere in the online documentation.
Do you mean the Variable Viewer, which as its name implies, is intended for viewing summaries of variables in the workspace?
Akua Agyeman
2017 年 5 月 1 日
I get that people who use matlab are super-smart...but for us less exalted people, could people answer questions assuming less knowledge. Half the answers to the questions read like PhD thesis, not great when learning to program and use matlab...think PYTHON, Keep it simple.
Walter Roberson
2017 年 5 月 1 日
Akua Agyeman:
I sometimes explain a fair bit in my contributions. Doing so takes a lot of writing. I could explain even more, but at what point do I stop explaining?
When I start writing, I often do not know that person asking the question knows anything about how to program a computer, or what an algorithm is, or about how computers store information. I do not know that they understand positioning notation for representing numbers; I do not know that they know how to add or subtract. If they have asked a question about, for example acceleration, then I do not know that they know what acceleration is, or about calculus, or about the concept of "rate of change" or "integration" or even what a curve is.
My explanation has to stop somewhere. I have to guess what the person understands and write to that level. If I underestimate them and they already know some concept then I have wasted a bunch of time explaining it, which wastes my time and their time. If I overestimate them and they do not know some concept, then I have not wasted any time, and the person can ask for clarification of the parts they do not understand.
To this you need to take into account that people often do not ask the question they think they are asking, or often omit information needed to understand what they really want to know. I could spend a lot of time explaining something, but it might turn out not to be relevant to what the person wanted to know, because the question was not clear. That wastes a lot of my time.
It is therefore more efficient to explain less and let the person clarify or ask questions. This might be a bit frustrating to the person to not have received a full response the first time, but there is a real cost to us providing responses to everything that the person might have meant, or to explain everything the person might not understand.
Birk Andreas
2017 年 6 月 28 日
There is no way to extend precison beyond double for fast numeric computations. There is a third party toolbox (not for free of course) which seems to do the right thing (I have not tested but it looks quite convincing: "Advanpix Multiprecision Computing Toolbox"). Why Mathworks can't you compete with the state of the art and build this into standard MATLAB already. Is it too difficult for you?
Walter Roberson
2017 年 6 月 28 日
Birk Andreas, the Symbolic Computing toolbox supports arbitrary precision, up to 2^29 (over 500 million) decimal digits.
Providing extended precision for addition, subtraction, multiplication, and division is not so bad, but it is a fair bit of work to extend that to include all the trig functions, exp() and expm(), eigenvalues, and so on.
John D'Errico has a File Exchange contribution http://www.mathworks.com/matlabcentral/fileexchange/36534-hpf-a-big-decimal-class which does extended precision decimal for a number of operations.
Birk Andreas
2017 年 6 月 29 日
Walter Roberson, thank you for the link! Regarding the symbolic computing toolbox: I know vpa. However, it is way too slow for some applications where fast numerical computations are required. In the meantime I tested the Advanpix toolbox. In my case the hit on computation time is still quite large (maybe faster than vpa but still too slow for me). I could live with a factor of two for qadruple precision but it is more like 100 or so. It is really a pity!
Jan
2017 年 6 月 29 日
@Birk: This is the expected behavior: While modern pocessors are optimized to process doubles very efficiently, simulating the arithmetics in software must be remarkably slower. A factor of two is impossible.
Walter Roberson
2017 年 6 月 29 日
As a guide: NVIDIA's CUDA devices generally perform 64 bit floating point at 1/32 or 1/24 of 32 bit floating point performance; however, some of the very high end cards handle it at 1/3 of single precision performance by having specialized hardware for it. We can expect that if it were just a small matter of software algorithms to get 64 bits at only a factor of 2 slower, that NVIDIA would have implemented that. We can therefore deduce that software floating point 64 bit emulation is about 1/24 the rate of single precision; that would tend to suggest that quadruple precision would tend to be about 1/24 of double precision for good software without hardware quadruple precision assist.
Alexandra Beaven
2018 年 10 月 29 日
The fmincon and fminunc functions are not great. My junior assistant ran tests against solver in excel and found that it gets better results, takes less time to get there, and is less prone to local optima than these two functions. Annoying because I am a BIG Matlab fan and have no intention of rewriting 25 years of optimization code in another langauage (I am under pressure to rewrite in Python).
Matt J
2018 年 10 月 29 日
編集済み: Matt J
2018 年 10 月 29 日
My junior assistant ran tests against solver in excel and found that it gets better results, takes less time to get there, and is less prone to local optima than these two functions
If the Excel solver is avoiding local optima non-accidentally, then it is an apples-to-oranges comparison. It likely means your junior assistant is running fmincon and fminunc against the evolutionary/genetic solver in Excel. The fair comparison would be to run Excel against ga from Matlab's Global Optimization Toolbox.
Valentina Compagnucci
2019 年 7 月 11 日
編集済み: Walter Roberson
2019 年 7 月 11 日
NO ENTIENDO COMO DEFINE LA FUNCION
En este caso, la fuente de tensión es constante Vcc=10V y las condiciones iniciales son:
’(0)=
Definimos f (función que representa el comportamiento del circuito) con el comando inline:
>> f=inline('[u(2);-2/2*u(2)-1/4.56*u(1)]','t','u')
f =
Inlinefunction:
f(t,u)[u(2);-2/2.4*u(2)-1/4.56*u(1)]
Rik
2019 年 7 月 11 日
Asif
2019 年 10 月 23 日
I hate how add-ons aren't available for student or home license holders. For example, why should the HDL coder and verifier add-ons require a massively expensive professional license?
Image Analyst
2020 年 4 月 9 日
Arushi, I find function very easy to execute. You just call the function by name passing it whatever arguments it requires. At least if they're a regular function -- anonymous functions can be a bit cryptic but you don't have to do it that way (you can always do it as a regular function instead).
You might explain your annoyances in a new question in more detail and we'll try to give you tips on how to do it.
Walter Roberson
2020 年 4 月 9 日
(Regular functions cannot capture values the way anonymous functions do.)
Walter Roberson
2020 年 4 月 9 日
I know that some people find it frustrating that functions do not look for variables in their calling environments, so if for example you have
function y = f(x)
and you execute f by clicking on the green run button, that it will not look in the base workspace to find x.
J. Alex Lee
2020 年 4 月 9 日
On the topic of functions and their interfaces, it used to be that I wished Matlab had a way to easily do default values for optional arguments, and named arguments...but the arguments block is a pretty welcome addition, which addresses default values, and I've taken to the key/val argument methodology that works well. But it is frustrating that original Matlab had lots of ad hoc "argument parsing" so that you had a "flexible" interface...I guess you can call it convenient, but it often means more doc/help look-ups for me to understand how to correctly specify arguments...legend() is one that gave me a lot of trouble recently. Can't be helped at this point though, I guess.
Sky Trader
2020 年 5 月 21 日
I tell you what irks me about Matlab: Everything. It is beyond doubt the most user unfriendly software I have ever used. The most simple tasks that you can do in other software, like importing data (used to be easy, not they've changed something and I can't even get apps to work on xls. data anymore), or installing an app is LIKE PULLING TEETH. Today I "simply" went to install an app I downloaded from there. But it's greyed out when you try and select it..... Then the "help" method suggested was to " Select "Add-Ons", and check that the Add-Ons install folder is writable." Of course there is no preference in "Add ons" that gives you this option. Typical....
Use Python, Use R, Use anytthing but this Matlabs app.
#BeyondFrustrating
Adam Danz
2020 年 5 月 21 日
@Sky, I feel your frustration. I commonly experience that during the early stages of learning new software. Having used Matlab, Python, and R, I think the gap between Python and Matlab is small. I'd bet that it takes less than 10 weeks of jumping into one after being familiar with the other before comfort levels start to match. R is another story and is least intuitive IMO. Another strength of Matlab is the documentation which is well formatted and largely consistent across all toolboxes. Once you learn how the documentation is organized, I find it very easy and quick to find what I'm looking for. Lastly, the community here is very helpful and if you can't find an answer to your questions in the forum, people are eager to answer new questions.
Walter Roberson
2020 年 5 月 21 日
The recent changes that I know of with regards to importing xls data:
- A few releases ago, uiimport() started importing text as string() data type by default instead of character vector. The user has control over this in the tool.
- As of R2020a, readtable() and related functions now do an internal detectImportOptions() by default, which does a more thorough analysis and can result in different variable types, or can result in prefixes and suffixes automatically being detected. For example a field with a leading $ would previously have been considered to be a character vector, but now the $ might be treated as a prefix to be removed and the number imported as numeric. There is an option to turn off the default detection.
- Importing of time and duration data has been improved over the last several releases; in particular a field such as '13:42' would previously have been imported as character vector but would now be imported as duration. There is an option to control that.
Furqan Hashim
2020 年 8 月 29 日
The cost of this software does not justify the time and effort you have to put in to get things going.
On one side you have a free of cost general purpose programming language (Python) that is easy to interpret and way faster than MATLAB. On the other hand you have an expensive software which would chew up all your RAM and make you write code that is difficult to debug along with a limited community support.
Take an example of group by in Python & MATLAB
Python:
df.groupby(by="a").sum()
MATLAB:
total = varfun(@sum, df,'GroupingVariables','a','InputVariables','b')
Would I pay and write extra lines of code?
Why would I pay for a tool that has a limited community support?
Walter Roberson
2020 年 8 月 29 日
My memory seems to be coming up a bit short in bringing to mind any vendor that has unlimited community support?
So give us some benchmarks: What response time would you consider acceptable, and how complicated a question would be fair game?
For example if someone posts saying that they need the complete code for their honors project in robot surgery, automatic detection and excision of brain tumors in mice, then how much time would be fair to allocate before someone gave them the complete debugged and documented code ready to be handed in? (Because if complete code is not routinely provided in such cases, then that would only be limited community support, and you are specifically opposed to limited community support, so you are envisioning a community where every request for code is completely fulfilled.)
dpb
2020 年 8 月 29 日
Times have changed drastically and there's a lot more options out there now than were in late '70s and early '80s when Cleve invented MATLAB and wrote the first versions (in FORTRAN, no less!).
The PC version was introduced in December, 1984 -- that's now over 35 years ago; it's no wonder the syntax that has evolved from then doesn't necessarily match what might be used starting from scratch now.
tcl/tk didn't arrive until 1988, python first introduced in 1991 but didn't really take off until relatively recently.
Meanwhile MATLAB was solving real problems...it certainly saved me big time when in the consulting gig to not have to try to put all the pieces together that were in even the initial MATLAB-PC.
A brief history of matlab> for those who aren't aware is probably educational.
Bruno Luong
2020 年 8 月 29 日
編集済み: Bruno Luong
2020 年 8 月 29 日
Personnaly I don't pay for MATLAB because of the community suppport. With few exception the document are mostly great that I rarely need to look elsewhere. Not sure it's the case of python.
John
2020 年 9 月 28 日
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).
Rik
2020 年 9 月 28 日
@John: I crossposted your comment to the second thread, please continue the discussion there. Feel free to post an answer there yourself. If you choose to do so, I will repost my comment to your answer and delete my answer.
Samuel Gray
2020 年 10 月 21 日
編集済み: Samuel Gray
2020 年 10 月 21 日
R2020b for Linux just wrecked my CentOS8 install.
It wouldn't install under my standard user account (needed access to /usr/lib and failed to get it) and then I tried to install it as sudo and that failed and then it wouldn't allow me to type anything in the email address text box when I tried it once more as a standard user. So I rebooted it and now it's throwing a dracut related error
".../etc/multipath.com does not exist, blacklisting all devices"
trying to shut down instead of completing startup and fails to do so then tries to start the GNOME Display manager and goes haywire. What fun. So R2020b for Linux is not compatible with CentOS8 after all I guess.
Note, these are problems just getting it installed and running...do you know how long it's been since I've had an installer break a working workstation Linux install to the point where it is unable to boot to the desktop? This is why Linux users prefer open-source tools and why network-admins prefer daily backups, networked user data directories and stock images! So, "Matlab on Linux" yay, "the Matlab installer breaking the Linux install and requiring a reinstall+reconfigure with a probable reformat and erasure of all user data on the partition" BOO!
[does this happen with Python and Eclipse? Hm...]
Luckily I have an Ubuntu install on the same drive and a good rescue usb key.
Now I just need to figure-out how to fix the CentOS8 boot process. No big deal.
Still, this is like Windows 98 all over again.
https://docs.centos.org/en-US/centos/install-guide/Rescue_Mode/
https://www.golinuxhub.com/2017/12/how-do-i-set-or-change-default-runlevel/
https://access.redhat.com/articles/754933
(this does not help as it siimply changes the display server not the desktop environment, which is corrupt,
and so the problem just has a different manifestation but the same source)
Martin Brorsen
2020 年 11 月 27 日
Compiled Matlab AppDesigner executables tend to forget functions when not used for some time
Allan Prince
2021 年 4 月 2 日
編集済み: Allan Prince
2021 年 4 月 2 日
Why are the plot settings so difficult to find. For example, if I want to change the size of a plot window, I have to scour their webpage to search through each of a hundred different ways that plots can be modified. Many don't seem to be formally documented (at least not that I can find). They are embedded in responses to the help center and I have to read 50 of those before I find what I'm looking for.
I've had to create my own help center just to record all the features related to plot so I don't have to search for it next time I need it.
Something as commonly used as the plot feature should be quick and easy to use and it's worth their time to clean up this mess of features related to plot.
Steven Lord
2021 年 4 月 2 日
What do you mean by "change the size of a plot window"?
- Change the size of the figure window
- Change the amount of space in the figure window occupied by the axes
- Change the limits of the axes to show a larger part of a plot that's larger than fits in the current view of the axes
- (As a bit of a stretch) Change the width of the line or the size of the markers used to plot the line. [If you hadn't used the word "window" this would be a more plausible interpretation of your request.]
The plotting capabilities of MATLAB do offer a lot of functionality and with that must come some level of complexity. I will admit Handle Graphics does have a bit of a learning curve.
The main way I would recommend interacting with Handle Graphics objects is:
- Find the handle of the object with which you want to interact. This could involve calling plot or other graphics function with an output argument, using the findobj or findall functions, or using the ancestor function.
- Search the documentation for the task you're trying to complete to see if there's a function. Use axis or xlim to change the X axis limits, for instance.
- Use dot notation to change the object's properties if there is no convenience function. f = figure; f.Position = newCoordinates; as an example.
One problem with your suggestion of "clean up this mess of features related to plot" is that the plot function has been around for at least 20 years (probably closer to 30 at this point) and people have written a lot of code that take advantage of those "mess of features". When we introduced the new version of the graphics system in release R2014b we did fix some long-standing bugs, introduced new capabilities, and eliminated or simplified some of the helper functions. Even though we tried to be careful about it and give plenty of warning, some users were still annoyed/upset with us for breaking their code. Doing a wholesale "blow up the system and replace it with something new" would be painful for both MathWorks and for long time users.
Etienne Grossmann
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
struct arrays are pretty unusable. Example:

Only workaround I know of:
foo = {x1.a}; % Looks like a cell w/ one element, but it is not so
foo{2}
Worse, the function jsondecode() sometimes returns a cell of structs (good), sometimes a struct array.
Etienne Grossmann
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
Thanks Paul, that was instructive!
I still have doubts about the utility of struct arrays. I think they're at best redundant w/ structs and cells, and an extra complication to the language.
I'd rather not need a bachelor of science in Matlab in order to program in Matlab.
As a practical disadvantage, if I already have dozens of functions that work w/ cells of structs, and jsondecode() returns sometimes struct array, sometimes cell of structs, it means I can't use jsondecode(), and must use something else to load json files.
Walter Roberson
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
x1(1).a = 3; x1(1).b = 100;
x1(2).a = 4; x1(2).b = 200;
x2 = struct('a', {3, 4}, 'b', {100, 200});
x3 = {struct('a', 3, 'b', 100), struct('a', 4, 'b', 200)};
isequal(x1, x2)
ans = logical
1
whos x1 x2 x3
Name Size Bytes Class Attributes
x1 1x2 576 struct
x2 1x2 576 struct
x3 1x2 912 cell
Notice that the cell version takes more memory. When you have a cell of scalar structs, then the name to offset information has to be repeated for each one of the entries, whereas for a struct array, the name to offset information is the same for each index.
Walter Roberson
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
You could, of course, reduce it all to cells, like
x4 = {{3, 100}, {4, 200}};
whos x4
Name Size Bytes Class Attributes
x4 1x2 656 cell
Besides the fact that this takes more memory than the struct array, you have the problem that you have to pass around a "key" everwhere in order to use this data. structs associated information with a name -- to use a field of a struct you do not need to know the relative position of the field within the struct, you only have to know the name of the field. Cell arrays on the other hand, you have to know which index is associated with each data item.
Samuel Gray
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
I suppose this depends on what you mean by "frustration". I usually think of it as reward -effort. Now I can see where possibly someone might want to make an array of structures. A directory-search returns a structure, so if you were to dir of a tree, that would return an array of structures. That doesn't require any funky javish code. If you're going to down that rabbit-hole it's a matter of documentation as much as anything else, right? And I totally agree that when documentation is incomplete or just not there or obtuse, AND i REALLY NEED TO DO SOMETHING THAT RELIES HEAVILY ON THE DOCUMENTATION, that yes it can be frustrating. If I can't find an easier, better way to do it. I had a very bad experience with this using the Signal Communications toolbox to try to do tcp and udp data transfers in Win10. Turns out this is a long-standing problem. Because MS came out with an entirely new & different proprietary network stack which does not work with the Windows version of Matlab. It works fine with the Linux version. But the real solution is to just use the pcap stack. Or, you know, get a good book on winsock and have at it. The point is that you have to balance need and "available options" against difficulty, time and net frustration. It's not about getting X(:) done with toolset Y(:) it's about figuring out how to create and organize a custom toolset-documentation combination to solve an appropriate set of problems in an appropriate amount of time and effort. "Appropriate". Use it like play-dough. It's great. Solves every problem.
Rik
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
The 'problem' in this case is that x.a produces a comma separated list. It is equivalent to x(1).a,x(2).a,...,x(end).a. When you understand that, this behavior makes perfect sense.
And regarding jsondecode; the behavior is deterministic and documented. It depends on whether Matlab can tell the input structs would be the same. If they are, the result will be a struct array.
You can also follow it up with a function that converts a struct array to a cell array of structs if you prefer.
More importantly, why exactly is this being posted in this thread instead of the second thread? On mobile this page will not load properly anymore, and even on some computers it is getting harder. @Etienne Grossmann why did you ignore the comment at the top and post your answer in this thread?
Bruno Luong
2022 年 12 月 10 日
移動済み: Stephen23
2022 年 12 月 10 日
"why did you ignore the comment at the top and post your answer in this thread?"
If you don't want people to post here then this thread should be locked. People just do search and they end up here, and no one bother to read the instruction before posting, they end up here alreadu frustrated (by MATLAB).
Rik
2022 年 12 月 10 日
@Bruno Luong Unfortunately the only current way that is possible is by closing the thread, which has its own downsides. That is one of the reasons I have asked for a soft-lock option to be implemented.
I don't think reading the opening post is an unreasonable thing to expect, especially if you expect anyone to bother reading your comment.
DGM
2022 年 12 月 10 日
編集済み: DGM
2022 年 12 月 10 日
Can't we just move new answers to the most-recent thread? I'm reluctant to try it myself, since these extra-heavy pages almost never load correctly on my connection, and I've already had to deal with items which won't move or don't move completely after I touch them.
EDIT: I guess this "structs" thread is now in a pile of comments instead.
Stephen23
2022 年 12 月 10 日
"Can't we just move new answers to the most-recent thread?"
That is what I just tried with the above comments, but it seems that moving only works within a thread :(
Rik
2022 年 12 月 10 日
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.
回答 (160 件)
Oliver Woodford
2011 年 2 月 16 日
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 件のコメント
Sean de Wolski
2011 年 2 月 16 日
Agree completely. We actually gave a few of our undergrads the (daunting) task of learning MeVisLab for the purpose of rendering.
Wouter
2013 年 11 月 1 日
I second this comment. I am seriously considering switching to Mathematica just because of the extremely crappy figure- and graphics handling...
Oliver Woodford
2013 年 12 月 5 日
Could still be a long wait - it's been talked about for years. Also I've tried it in R2013b, not enough to work out if it's as buggy, but enough to realize it's just as slow! Fingers still crossed for something good, though.
Steven
2015 年 1 月 23 日
These commenters are crazy, you can do those things if you take the time to learn how to use the graphics package with set and get you can get any result you want. You just have to learn how to write your code for matlab
Oliver Woodford
2015 年 4 月 13 日
@Steven: The issues raised here were rendering speed and bugs, not what can be rendered. I also disagree with your comment about being able to get any result you want. Volumetric rendering is non-existent, and solutions like vol3d don't look great. Also it is not possible to texturemap an arbitrary mesh, and the work-around of vertex coloring a much higher resolution mesh is beyond the scope of knowing how to use set and get.
Ian
2011 年 3 月 28 日
- 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 件のコメント
Robert Cumming
2015 年 4 月 14 日
An alternative is to try out this GUI Toolbox as a completely different way to design and build GUIs.
Includes a guide equivalent. No guidata, no handles, an easy to use GUI API with lots of methods. Free demo version includes many examples.
Michelle Hirsch
2015 年 8 月 31 日
The new graphics system in 14b is a good start - added uitab/uitabgroup and anti-aliased graphics (among many, many other enhancements).
MATLAB has made tremendous progress in Unicode support since 2011, so take a look again if you haven't lately.
Eng. Fredius Magige
2017 年 6 月 28 日
The Matlab is fantastic tool to me. It do a lots as long as you known what are your input and expected out. I, indeed, finalizing coding Water Distribution Network Design Optimization tool, as it has no limit of number of pipes from different materials and pressure rates. This a major challenge to many optimization tools. Further, Matlab has assist me to plot and lay out XYZ of all networks.
The major challenge I have been faced is consume a lot of time when apply/looping through "for-end" which I have no way to escape it
Thanks all Matlab Community
Walter Roberson
2017 年 6 月 28 日
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
2022 年 3 月 10 日
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."
Jan
2011 年 2 月 16 日
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 件のコメント
Jan
2011 年 4 月 4 日
I wanted to add the optimization flag /arch:SSE2 in my MEX call in Matlab 2009a. This works with:
mex -O OPTIMFLAGS="$OPTIMFLAGS /arch:SSE2" func.c
Because I have to do this programmatically I need the functional form and tried:
mex('-O', 'OPTIMFLAGS="$OPTIMFLAGS /arch:SSE2"', 'func.c')
>> ERROR: flag /arch:SSE2 is not recognized.
Ugly parser! This is the correct calling sequence:
mex('-O', 'OPTIMFLAGS="$OPTIMFLAGS', '/arch:SSE2"', 'func.c')
So I have to split the string inside the double quoted section, although these double quotes are exactly needed to signal, that the string should not be split! This is a drawback of the complicated pipeline as BAT-> M-> PERL-> Compiler.
Walter Roberson
2015 年 8 月 10 日
The method of setting up compilers was completely rewritten a couple of releases ago, at least for MS Windows. I do not know if it is any better or worse... but quite different.
dpb
2018 年 11 月 13 日
At least as convoluted still and nearly impossible to make use of anything other than the one or two "blessed" compilers --
Praveen Kumar
2019 年 6 月 24 日
編集済み: Praveen Kumar
2019 年 6 月 24 日
I had two subsystems(A and B). I want B inports which are conncected to which outports in A. Any ideas.
David Young
2011 年 9 月 28 日
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 件のコメント
Daniel Shub
2011 年 9 月 28 日
Wait until you try and get your overloaded subsref function to handle colon and the other "odd" indexing notation: http://www.mathworks.com/matlabcentral/answers/6764-overloading-subsref
You would have thought that with the major overhaul of the OO system that they would have gotten it much better. Often simple OO things are inefficient and complex things are near impossible.
SK
2014 年 4 月 30 日
Agree. subsref and subsassign are unusable and can be fairly called broken in principle. Also, once you have overloaded () for a class, you can no longer have consistent notation for arrays of that class type. The basic reason is the overuse of the () operator for array subscripting, instead of the more sane [].
Steven Lord
2021 年 9 月 23 日
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
2022 年 9 月 22 日
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.
Oliver Woodford
2011 年 2 月 16 日
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 件のコメント
Sean de Wolski
2011 年 2 月 16 日
Also agreed. Fortunately my University has a campus license that includes almost, if not, all of the toolboxes.
I think when I graduate and look for a real job, I may make a professional license with a few of the toolboxes, either a requirement for the company, or I'll just buy it as a gift to myself.
Jan
2011 年 2 月 16 日
If you pay a skilled engineer with 70 Euro per hour and he needs 200 hours to program and debug e.g. some image processing functions in Matlab, you spend 1400 Euro for a toolbox without standardized documentation and support.
Now let the programmer create an equivalent software with the free MSVC-Express version. Well, I assume Matlab helps to save more money than it costs.
Walter Roberson
2011 年 2 月 16 日
The cost is a serious constraint, both personally and for the organization I work for. Personally as in it notably constrains the questions I can answer: buying a $2000 toolbox in order to answer questions for free is not a wise investment decision. At work, I'm trying to help someone stuck with a 2007b release who has a program that needs 2008a to run: their department cannot afford to update the license.
Scragmore
2011 年 10 月 27 日
I am currently unemployed but when employed I'm mainly do business analyst type work within the financial sector. Recently to help make me more employable I started to learn programming c/c++ as well as looking at Matlab. I was luck I managed to get a hand-me-down copy of 2007, without this I would never have been able to afford Matlab.
But before you say if you can't afford it don't use it, think about this. When I get employed I will use the tools I know, if its Matlab that means a license. If I am luck enough to be in a hiring position I may be more likely to hire people who use Matlab if I can use it as well.
Mathworks has a challenging problem, paying for programmers to produce world class software and accessibility to help perpetuate your user base.
John Petersen
2012 年 2 月 7 日
I often hear the argument that Matlab saves more than it costs, but what is forgotten is that there are a myriad of software tools other than Matlab -- most cost considerably less. So comparing Matlab and the associated cost with having pencil and paper is not a fair assessment. Also, I'd rather see the toolboxes combined but left at $1k. e.g. Combine all the Signal Processing toolboxes into one, combine all the control into one, all the financial into one, etc.
Mike
2012 年 7 月 25 日
Matlab is great software and really useful. Yes, way too many toolboxes and some of them just repeat functions in other toolboxes. Combine them as JP suggested, which I would think reduces code maintenance, management and likely saves operational costs. It would also be a stronger selling point. Cost is huge for small companies and startups.. Really, is there a point to having 100+ toolboxes?
Stephen
2013 年 3 月 20 日
編集済み: Stephen
2013 年 3 月 20 日
This is a point that I think should be emphasized more.
Students are required to learn Matlab in many engineering programs, and provided it for the low cost of a textbook. Compared to a license with a handful of toolbox in their area of expertise that they use regularly, the student price is roughly 1% of the actual cost.
For a large company with sufficient revenue, the full price might be bearable. However, if a group of students wants to bring a commercializable idea to fruition either while they are still students, or shortly after graduating, the cost is a substantial barrier to using Matlab in an age of lean startups. Of course, there are alternatives, but students just spent four years mastering Matlab, not those alternatives.
It would be great to see some graduated licensing scheme, or have a freelance license available that makes it feasible for small companies and independent engineers to use this software commercially.
Jan
2013 年 3 月 21 日
@Stephen: Although I understand, that a cheap freelancer licence would be a benefit for freelancers, it is very clear, that especially their job is creating commercial software. And then the price of Matlab should be forwarded to the customers, but not to TMW! Why should TMW sponsor freelancers massively?
Image Analyst
2013 年 3 月 21 日
Perhaps there could be a MATLAB-Elements, like Adobe Photoshop, or a cloud version, again, like Photoshop: http://www.adobe.com/products/photoshop/buying-guide.html
There is the standard Photoshop version for $699, Photoshop Elements for $99.99 (a real bargain), and a monthly Photoshop Cloud for only $20 per month.
Walter Roberson
2013 年 3 月 21 日
MATLAB and associated toolboxes are priced at a point where it is not feasible for non-students to use the software non-commercially, such as volunteers, or freeware / donationware, or low-budget NGO. TMW has no legal obligation to provide lower-cost licenses for those purposes, but we can still acknowledge the fact that personal licenses are more or less confined to the well-to-do individuals.
Steven
2015 年 1 月 23 日
Cloud versions are BAD! but good if you wan't to own it for a month and never use it again
Michelle Hirsch
2015 年 8 月 31 日
MATLAB Student and MATLAB Home are great affordable ways to get personal licenses of MATLAB. MATLAB Student now starts at $49 (US).
MathWorks is offering an increasing number of license options for academic and professional use, so it can be worth checking in to see if MATLAB might be more affordable than you may have thought.
Rik
2017 年 5 月 31 日
I was indeed surprised to see that the price for a non-commercial home license is currently €119 for the base and an additional €35/toolbox. That puts it on the price level of an expensive hobby, instead of only being affordable if pirated.
Other real alternatives are either very different in what they can do (like R), or half of the functions are not implemented and much slower (like Octave). I think the price is still steep, but you can start off with Octave and then move on to Matlab.
Walter Roberson
2017 年 5 月 31 日
I see people posting complaining that the Home version does not support HDL generation for boards that are $US1100 to $US33000.
Asif
2019 年 10 月 23 日
編集済み: Asif
2019 年 10 月 23 日
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
2020 年 5 月 6 日
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.
Dan
2017 年 5 月 2 日
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
2011 年 2 月 16 日
plot legends are not always placed in the "best" position - quite often its right slap bang on top of the data...
3 件のコメント
Dan
2011 年 11 月 22 日
You can click on them (the legend) and move to another spot (even outside the axes). Also you can position the legend as an object at creation time or after by asiging to a variable and using "set".
Matt J
2018 年 11 月 13 日
You can, but shouldn't the default legend position be somewhere not covering data?
DB
2023 年 6 月 13 日
Actually, you can set the best position automatically by using the option 'best':
legend([plotxy],'plot of y over x ','Location','best')
Sean
2011 年 9 月 27 日
I would love to just write x++; instead of x = x + 1;
10 件のコメント
Derek O'Connor
2011 年 9 月 27 日
I would prefer to write inc(x) and dec(x) instead of x = x+1 and x = x-1.
Jan
2011 年 9 月 27 日
This has been discussed in CSSM repeatedly. It would concern MATLAB's fundamental methods for addressing variables. I do not assume, that this will be implemented.
But I see the benefit. A dirty C-Mex implementation is possible using some undocumented API functions. But I will not implement an instable method, which save micro-seconds, but can cause weeks for debugging.
Andrew Reibold
2014 年 9 月 26 日
If this is your biggest issue with the software, I'm very happy for you :)
jaya viMALA
2019 年 4 月 12 日
編集済み: Adam
2019 年 4 月 12 日
Yes Me too, in Starting i am Confusion on thsi x++, Y--. that's why i try to use it may time. I am use this only.
Regards,
Adam
2019 年 4 月 12 日
Please don't use Matlab Answers for advertising links. I deleted the link you added here.
Samuel Gray
2022 年 10 月 24 日
編集済み: Samuel Gray
2022 年 10 月 24 日
Honestly I don't see how you find this "frustrating" to you, hte fact that you can't write C code literally in Matlab and have it work as expected. God, all those printf() calls that don't work must really frustrate you.
And the whole thing about system calls, SMP semaphores and locks, the inability to run Boost, pull in code using #include directives, the inability to build matlab m-files in VS...the fact that it's just basically not C...
must be hugely frustrating
but you've just reminded me of something else.
It's not Python either, and it doesn't support a whole lot of GUI toolkits....so many things I can't do at the Matlab command-line. I can't...alter the prime lending rate...
Rik
2022 年 10 月 24 日
@Samuel Gray I don't think this tone will convince anyone, so if your goal is an honest discussion, this is not the way.
The proof this request is not unreasonable can be found in Octave: there you can actually use this syntax. A noteworthy oddity is that the Matlab syntax checker will allow this and will only throw an error at runtime. Perhaps it is possible to write a custom class that allows you to do this by overloading plus.
Samuel Gray
2022 年 10 月 24 日
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
2022 年 10 月 25 日
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.
Csaba
2013 年 12 月 4 日
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 件のコメント
Image Analyst
2013 年 12 月 5 日
That does sound frustrating. I also have the same problem when I go to GUIDE and save it from GUIDE and return to MATLAB. It blows away bookmarks, breakpoints, etc.
jaya viMALA
2019 年 4 月 12 日
編集済み: Walter Roberson
2019 年 4 月 12 日
yes, my Students also get the Same issues, I need some Guidence on this
Regards,
Steven Lord
2022 年 3 月 10 日
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
2022 年 10 月 24 日
編集済み: Samuel Gray
2022 年 10 月 24 日
"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.
Oliver Woodford
2011 年 2 月 16 日
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 件のコメント
Oliver Woodford
2013 年 11 月 22 日
Happily, this is becoming less true with every release, on Windows at least.
Wyken Seagrave
2014 年 5 月 14 日
The secret of creating high quality videos on Windows is to use VideoWriter, an object compressed with Motion JPEG, and not movie2avi, which produces low quality video. So it is frustrating that, when you search the Help for "movie", and you find movie2avi, the only reference to VideoWriter is a single word at the bottom of the help page. I think there should be a warning that it has replaced movie2avi!
Samuel Gray
2022 年 10 月 24 日
編集済み: Samuel Gray
2022 年 10 月 24 日
never ignore or underestimate the power of Google
Rik
2022 年 10 月 25 日
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.
Patrick
2011 年 10 月 27 日
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 件のコメント
K E
2012 年 7 月 25 日
Also, quality of copied figures is poor (blurry lines/text) and requires workarounds like export_fig .
Richard Finley
2012 年 1 月 30 日
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 件のコメント
K E
2012 年 7 月 25 日
Also I find the license manager cryptic for managing a small group of user licenses. If I have a license management task, I almost never open up the license manager and succeed on my first try; I always end up calling/emailing tech support.
Jan
2012 年 7 月 25 日
Without doubt FlexLM is neither smart, nor user-friendly. I've struggeled with several other software package also, which use this license manager. The usual procedure is 12 minutes for installing the software, 2 hours trying to install the license manager, one hour for emails and phone calls to the technical support, who comes in the next day, look of what I have done so far. Finally the sessions end with something like: "I've called the developpers this morning and they told me, that you need the computer's name and nothing else." But after we typed in the IP, the software suddenly accepts the connection to the license server.
The FlexLM software is a really bad choice. It is very sad, that TMW has decided for this service, because all it does is impeding the legal usage of Matlab substantially.
Mike
2012 年 7 月 25 日
The fact that if I want to deactivate an old version of matlab on a PC with 2 versions, since there is a new release out and flex deactivates all versions on the PC is a pain.... Why doesn't it just deactivate the one selected?
Mace
2015 年 10 月 7 日
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.
Ian
2011 年 3 月 28 日
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.