Paulo Silva

What is missing from MATLAB?

Paulo Silva on 14 Feb 2011 (Edited on 5 Mar 2024)
Latest activity Reply by Newthon on 14 Aug 2023

I'm curious, is there something you wish to do with MATLAB but you can't, maybe something you can do with other similar software but can't with MATLAB?
For new entries, please use the follow-up thread here. Please do not post new answers in this thread.
Newthon on 14 Aug 2023
Compare sldd files and publish a HMTL report using Matlab script:
I can compare .slx, .m, etc. files using the visdiff function and publish a report using the publish function like this:
compare = visdiff('File1.slx', 'File1_changed.slx');
publish(compare, 'format', 'html');
But I can´t do the same with .sldd files:
compare = visdiff('File1.sldd', 'File1_changed.sldd');
publish(compare, 'format', 'html');
Error using visdiff
Unable to compare 'C:\basic\File1.sldd' and 'C:\basic\File1_changed.sldd' without opening the Comparison Tool.
Why if I can generate an HTML report using the Comparision Tool in the same way, both for .slx and .sldd files?
slevin Lee
slevin Lee on 31 Oct 2022
I want to use the SymbolicTransformer function of python GPlearn
Why does the paid matlab not have some functions on free python? I can't understand
cui,xingxing on 7 Feb 2021
How to visualize the changes in dlarray/weight distribution with histograms in deep learning?
Histogram displays how the trend of tensor (weight, bias, gradient, etc.) changes during the training process in the form of histogram. Developers can adjust the model structures accurately by having an in-depth understanding of the effect of each layer.
cui,xingxing on 2 Feb 2021
I very much hope that the official version will strengthen the readstruct function in the future! Lack of complete uniformity to support more format requirements.
Walter Roberson
Walter Roberson on 29 Jul 2020
Missing: ability to set multiple bits within the same word, by bit number.
Currently, if you try something like
bitset(A, [5 3])
then you get back a vector of values, setting each of the bits in turn, instead of setting all those bits within a single word.
You have to resort to things like
bitor(A, sum(bitset(0, [5 3])))
cui,xingxing on 24 Jul 2020
and so on....
The above are influential applications of deep learning in various aspects, but it is difficult to reproduce in matlab. Although Matlab2019b version supports automatic differentiation mechanism, it is still difficult to implement algorithms in matlab. The efficiency of the differentiation mechanism is not high, and many operators do not support it. I tried to implement the more famous yolov3/v4 algorithm with the latest MATLAB2020a version, but it is still not satisfactory
In summary, my personal suggestions are like my personal answer above, and I hope that future versions can improve a lot!
cui,xingxing on 24 Jul 2020
Oh, good, thank you for your reminder, I thought I didn’t publish it yesterday!☺😀😀
Walter Roberson
Walter Roberson on 24 Jul 2020
It disappeared from the bottom of the list because it got voted for and moved upwards.
cui,xingxing on 23 Jul 2020
and so on....
The above are influential applications of deep learning in various aspects, but it is difficult to reproduce in matlab. Although Matlab2019b version supports automatic differentiation mechanism, it is still difficult to implement algorithms in matlab. The efficiency of the differentiation mechanism is not high, and many operators do not support it. I tried to implement the more famous yolov3/v4 algorithm with the latest MATLAB2020a version, but it is still not satisfactory
cui,xingxing on 24 Sep 2021
Thank you for your reply, I have been following the latest development progress of "deeplearning toolbox", although there are a lot of new features listed, but most of these are superficial improvements, the substance of the support “operator” is very limited, for the experienced in-depth researcher is still very insufficient.
Steven Lord
Steven Lord on 23 Sep 2021
I'm not familiar enough with Deep Learning Toolbox and the functionality you've requested to determine how much (if any) of what you've requested has been implemented, but the Deep Learning Toolbox Release Notes lists many items for each of the past couple releases. Perhaps you can scan through and determine which of your requests have been implemented.
Walter Roberson
Walter Roberson on 30 Jun 2020
Ability to use a multidimensional logical array to substitute for multiple dimensions while still specifying other dimensions.
For example if you build an ROI that is going to be 2d, and you cannot currently do things like
array(mask2d, :)
array(mask2d, :, :)
to talk about the rgb elements associated with the mask.
In the particular case of ROI mask you can repmat(mask, 1, 1, 3) but there are plausibly times where you might want to do something like
array(2, mask)
with you wanting to substitute a 2d logical array for the second and third dimension.
Chris Dean
Chris Dean on 15 Feb 2020
  1. Native support for custom keyboard shortcuts, i.e. let me point to a function to execute when a key-combo is pressed. Currently I can put them in the "Favorites" and add them to quick-access and order them for Alt+1, Alt+2, etc, which is alright, not great if you want more than 2 or 3. There is also theEditorMacro from File Exchange, which is good, but would be nice if it was baked-in to Matlab so I could more easily share helper functions with colleagues.
  2. Better git support. VS Code is light-years ahead here, for example.
  3. Extended syntax highlighting. Built-in keywords are highlighted, let's add a color for variables, functions calls, and class constructors/static methods. The example screenshots here are a nice example of how much more readable code is with functions highlighted.
  4. Bring the improvements of function parameter help text from live scripts to the regular .m files
Steven Lord
Steven Lord on 23 Sep 2021
In release R2021b the Editor now automatically displays contextual hints for arguments, property values, and syntaxes. See the Release Notes for more information. There are some additional editor related changes also listed in the Environment section of those Release Notes, just clear the search term "suggestions" to see them.
dpb on 15 Feb 2020
" Back in the 90's when I used the Brief programmer's editor,..."
Amen, brother! to all of the above. Anything based on the Windoes CUA is fatally broke before leaving the station.
Besides the features above, column cut/paste, bookmarks, etc., etc., ... the list is nearly endless besides the facility to customize at will what you didn't like or needed improved or simply just wanted to add. Theoretically one could do custom integration in VS editor but the level of complexity is so high as to make it essentially a fulltime occupation to be able to learn it well enough to do anything useful.
Simply even keystroke mapping is broke because you can't get away from the stinkin' context switch with Alt and Ctrl that aren't mappable so all of a sudden you're back at menu level instead of in the file edit context. Pitiful stuff! :(
And, unfortunately, the situation hasn't really improved significantly as far as the editing functionality itself; only the integration of debugging and the accroutrements of syntax coloring, etc., Not that those aren't significant and very useful in their own right and the coding hints are especially good for newbies (if they would only pay attention to them as we see here in Answers they generally don't, just as folks mostly don't read the documentation more than a cursory scan...).
I've retired from active consulting, but while still writing significant code, my general development pattern was to actually write the code using Brief or a workalike outside the ML environment and only if needed more than cursory test/debug, then and only then load into the integrated editor for that purpose to set breakpoints.
Image Analyst
Image Analyst on 15 Feb 2020
I very much agree with having easy keyboard macros. Back in the 90's when I used the Brief programmer's editor, and later Codewright, they were so SO much better than the current crappy Windows CUA editor that we're all stuck with now. For example to copy whatever line the cursor is on into the clipboard, you simply typed + on the numeric keypad, and to cut you simply typed - on the numeric keypad. No having to place the cursor to the left in the small Angstrom-wide space where the arrow reverses direction and then typing control C.
And if you want to record any number of keystrokes, you'd simple type the F5 key, then type your keys, then type F5 again to stop it. Then to redo those keystrokes, you'd simply place the cursor where you wanted to do them and type F7. Very easy and very efficient.
And with searching and replacing text, the Codewright search box had a "Once" button where you could just do the final replacement once, and it would stay there. Currently, it will move to the next location in the file which is likely miles away from where you were and now you have to find the left pointing arrow on the tool ribbon and click that to get back to where you wanted to stay.
Line-based programmers editors are so much better than character based editors like in WIndows, which is best for things like word processing documents, not line-based computer programs. I would really like it if we could replace the crummy editor in MATLAB with something like SlickEdit or similar. It would make me a lot more efficient. A long time ago I think I looked into it and it appeared you could but you lost the ability to do debugging, like setting breakpoints, stepping on lines of code, etc. You could only edit the text. Not sure if there's been any improvement to that. let me know if there has.
Rene M
Rene M on 6 Feb 2020
Being able to compile a desktop standalone app made in app designer that works on a 32 bit Windows.
Rik on 6 Feb 2020
Although I agree with your conclusion, I do want to comment on the level of obsolescence of 32 bit.
In early 2016 I bought a 2-in-1 and didn't pay enough attention. When trying to update to Win10x64 I discovered that the CPU itself was 32 bit, and the 64 bit option wasn't the default. This was from a reputable brand. So it is not that obsolete. I would even suggest computers like that are a prime target for cross-compilation, because small apps will run fine, but complex calculations would be an issue.
Walter Roberson
Walter Roberson on 6 Feb 2020
This will never be possible. 32 bit support is gone and it will never return: it presented too many limitations. The current minimum memory for MATLAB is the same as the maximum memory for 32 bit.
I did some checking a couple of years ago. I could only find one Intel 32 bit x86 CPU that had been manufactured in the previous decade, and manufacturing of it had stopped several years before I checked. I checked the major laptop and notebook manufacturers and could only find one Intel or AMD based notebook that was manufactured with that 32 bit CPU, with the manufacturer having switched to x64 completely after about 18 months.
My mother's 15+ year old system has an x64 and it was always a low budget system: by 15 years ago it was no longer economical to put x86 cpus into low budget computers.
If your hardware is x86 then you are talking about the kind of computers that charities will no longer accept to send to needy people, because the systems are so obsolete. You can get better systems literally given away on Craigslist or equivalent.
I would recommend against Mathworks putting any effort into this idea.
cui,xingxing on 16 Aug 2019
DeepNework object detection: ,in this repository, I do't know how to design my ssd netwok in matlab, only fast/faster RCNN, yolov2 algorithm can support, i can't free design( ▼-▼ )
DeepNework face and key point detection:
cui,xingxing on 6 Feb 2020
Thank you for your prompt reply!@Justin Pinkney
Justin Pinkney
Justin Pinkney on 31 Jan 2020
There is a MATLAB version of MTCNN face detection and alginment here:
Christopher Greulich
Christopher Greulich on 13 May 2019
Better programatic suport for formating and manuplating live scripts, ideally full markup support in the live script enviroment.
Live scripts have the ability to use markup like commands to autoformat text ( Imbracing markup a little more and allowing the live editor to freely switch between formated and markup views.
Allow formated text to be procedurally generated by the program. I'm conducting various trials or expirments in a live script and keeping track of the trial number with a variable. Allowing that variable to be inserted as a header so it is tracked in the table of contents would save time formating the report and allow more time for experimentation.
Christopher Greulich
Christopher Greulich on 13 May 2019
The first link was not the one I was thinking it was but still kinda valid because it speaks to the larger part. The one I was writing about was where there isn't a way of getting the currenlty running file name while in the live editor.
There is alot of access to objects (gco), axes (gca), and figures (gcf), manupilating them and then saving them with saveas(). There isn't a comparable gcfile (mfilename or dbstacks() doesn't work) and the saveas relies on matlab.internal.richeditor.openAndConvert which, while it works, relies on internal matlab calls which broke with richeditor to liveeditor refactoring and isn't as polished as saveas().
I'm just thinking if live scripts want to be seen as dynamic all ecompassing multimedia content it would be good to get alot of access raw access to easily manipulate it. I sometimes process dozens of csv's of data with a generic script than export results to html. After looking at the html I'll than conduct additional analysis on certain data sets. I'll rather programatically create a dozen different mlx files run them with a batch script than be able to edit the individual mlx file when I do the additional analysis.
Walter Roberson
Walter Roberson on 13 May 2019
That first link only has to do with publishing live scripts, so it is not obvious to me that it is the link you wanted?
There is a need to permit live scripts to output tex / latex to be displayed, without having to text() that into place on an image.
madhan ravi
madhan ravi on 8 Feb 2019
It would be nice and make life a lot easier if bsxfun() has mtimes functionality or if 3D matrices can be matrix multiplied with just an (asterisk *) in later versions . While trying to matrix multiply between two 3D matrices it's quite frustrating.
Steven Lord
Steven Lord on 17 Sep 2020
See the pagemtimes function introduced in release R2020b.
Walter Roberson
Walter Roberson on 8 Feb 2019
There is a File Exchange contribution for that; my memory says it is from Jan.
On GPU, pagefun() can do that.
Will on 10 Jan 2019
Syntax highlighting that picks up fields of structures, not just the structure names themselves.
I want to know where I use a given field, and to be able to universally alter all uses if I rename it, as you can with variable names, structure names, etc.
Lucademicus on 8 Jan 2020
I guess Rik's comment is offtopic, I agree with Will.
Automatically highlighting a selected field of a struct (or property of an object) would be very helpfull. I'm using VS Code, which is a bit better because it highlights other words similar to the selected field.
Steven Lord
Steven Lord on 10 Jan 2019
Code Analyzer warning suppression. See the "Adjust Code Analyzer Message Indicators and Messages" section on this documentation page for more information.
dpb on 10 Jan 2019
"Before I learned about the %#ok..."
OK, that's greek to me...???
Rik on 10 Jan 2019
Before I learned about the %#ok I used this as a feature to hide some warnings. In hindsight a terrible idea.
Kevin Chng
Kevin Chng on 10 Dec 2018
Currently, in MATLAB live script (up to version 2018b), it don't have features to show or hide the code section. Therefore, we need to use workaround solution ( , hopefully, next release will include this feature in live script.
Adam on 8 Oct 2018
As a regular user of object oriented programming one of the things I miss most from C++ (where I started) is the ability to pass handle-derived class objects around using a const property. I use handle-derived classes a lot (~95% of my classes) and their ability to pass by reference is very nice, but having no control over whether they can be edited or not is frustrating.
A colleague of mine was once querying how something could be changed in a class I had written because it had immutable set access. So I had to explain that because it had public get access any code could quite happily get hold of the object and make changes to it, the only thing immutable means is that a whole new object itself cannot be set.
I suspect wishing for this is fighting against the type of language Matlab is and other scripting-based languages maybe also don't offer constness (and even in C++ using things like boost shared pointers can have the same effect).
Jeff Miller
Jeff Miller on 8 Oct 2018
The editor tab has buttons to comment out the selected lines and to remove comments from the selected lines. In addition, it would be nice to have a button to toggle the comment status of all selected lines--that is, make the highlighted regular lines into comments and make the highlighted comments into regular lines. I would gladly sacrifice the comment wrap button (which I never use) for such a toggle option, if screen real estate is an issue.
Walter Roberson
Walter Roberson on 8 Oct 2018
I use the comment wrap. I never use automatic code wrap but I do reformat comments.
Rik on 8 Oct 2018
Especially during debugging/writing new code this would be useful to be able to quickly switch between two code situations.
If we're changing the way commenting works: it would be nice if it doesn't add the comments in the beginning of the line, but at the start of the code, so the alignment doesn't get broken if you comment things in places like a loop or an if block.
dpb on 6 Oct 2018
Neither textscan nor readtable can handle 'X' format string; whassup w/ that?
Why are hex data presumed to not be in text file with other data such as date/time strings or in files for which one or the other is the obvious higher level tool?
madhan ravi
madhan ravi on 25 Aug 2018
Is it possible to have the answer in latex form by default in command window?
The equations would be much more readable and understandable.
It could save lots of time , for instance in mupad by default the results are in latex form.
Steven Lord
Steven Lord on 21 Mar 2019
It's not specifically LaTeX format, but you can use symbolic computations in the Live Editor and have them displayed in a format more like what you'd see in a textbook than the plain text format in which they're displayed in the Command Window. Run the first two commands from this example in the Command Window and compare it to the results on that page (which is how it's displayed in the Live Editor.)
If you want to insert an equation as text, the Insert tab on the Live Editor's toolstrip includes a button "Equation" that will let you enter an equation either using an equation editor or by typing / copying LaTeX code.
Walter Roberson
Walter Roberson on 26 Aug 2018
No, it cannot be. Latex is a terrible format for mechanical manipulation. People use text processing to manipulate the character representation of formulas.
madhan ravi
madhan ravi on 25 Aug 2018
yes sir what I mean is the results obtained from the calculations can't it be in the latex form by default?
Walter Roberson
Walter Roberson on 25 Aug 2018
Livescript formats equations.
mupad() notebooks are being removed.
dpb on 4 Feb 2018
TABLE type needs display format by variable similar to the DATETIME object. Having to set global application format is a nuke for a fly-swatter. Sample--
>> t(:,[1 2 6 7])
ans =
Acct Pool Corpus Value
______ ____ __________ __________
S62671 4 2e+05 2.0369e+05
B62630 7 1.0545e+06 1.0561e+06
C62730 7 5.292e+05 5.3007e+05
C62731 7 3.116e+05 3.1202e+05
S62668 8 79527 94990
>> format bank >> t(:,[1 2 6 7])
ans =
Acct Pool Corpus Value
______ ____ __________ __________
S62671 4.00 200000.00 203694.22
B62630 7.00 1054497.48 1056134.46
C62730 7.00 529200.84 530067.94
C62731 7.00 311601.19 312017.40
S62668 8.00 79526.58 94989.65
Default of format short mixes up integer values and non- so nothing aligns well plus insufficient range; since are accounting figures format bank fixes it for the two columns that are dollars/cents, but turns the integer Pool number into float that's ugly plus everything at the command line is also in bank format which is inconvenient for other uses as well.
dpb on 4 Feb 2018
I agree if one were to make it totally generic it could become complex; I'd be satisfied if simply could set numeric variables format by variable. While different columns in a numeric array variable can be different, having one format spec for the array would be no different than what exists now from that standpoint but quite a lot more granularity than is presently available, "built-in".
While it's true that the table object could be quite handy for display-only purposes, it's just a missing convenience in the implementation while even writing code or using the tool for interactive debugging and/or exploratory data analysis (the latter being what was doing when got annoyed; still working on the college foundation data-keeping mishmash of Excel spreadsheets and have exported them to Matlab tables for some "smooshing" and was trying to ensure had the right numbers. Then I needed to do some other calculations and BANK was totally unsuited for those while still not done otherwise).
Under the guise of "the object is only there for the data storage" there's no reason time values are displayed in other than the internal storage representation, either. :)
BTW, I don't disagree with the concept of the further expansion, either; Matlab is quite short on such amenities, overall...I'd just like the "one small step" first. :)
ADDENDUM For the given example I can work around "the uglies" by converting the pool numbers to categorical; I deliberately used them as numeric to illustrate an example why it would be nice to have the facility; not all integer-valued variables would want to be turned into categorical.
Walter Roberson
Walter Roberson on 4 Feb 2018
A fair number of people confuse table objects (collections of related variables, sort of like a database) with tables for display purposes. Mathworks essentially did not try to create tables for display purposes.
If tables are to be improved for display purposes, one suggestion I would have would be to have an option for displaying the variable description property under the variable names, along with an option to not display the variable names at all. The variable units should also be displayable. Probably the units should be after the description.
If supplying a format specifier for variables is permitted, then the specifier would have to take into account that individual variables can have multiple columns, and that there could be potentially long character vectors or string objects. Dealing with wide data but limited space might call for implementing some kind of "flow" properties... which would be helped by providing a hyphenation routine...
Stephen23 on 9 Jan 2018
"... horizontal placement. Why not 'top, middle, and bottom'?"
Because top, middle, and bottom are vertical alignment, not horizontal alignment.
"Should be included in the help file associated with 'text'?"
In the help page: "For a full list, see Text Properties", which takes you to the page describing all of properties of the text object. These are listed in their own dedicated help page (just like with every other graphics object).
dpb on 9 Jan 2018
Perhaps more enhancement than missing, but...
A search function that is tolerant of variable data types in the target object. Example is a cell array of mixed text/numeric types that need to find a given text within. At present (afaik, anyway) there is no function that will search the cell array ignoring the cells containing other than text content. If one constrains the search to the locations with just text by logical addressing or such, then the result is consistent within that subset but relating that set of locations back to the location in the original is not necessarily trivial.
Jeff Owen
Jeff Owen on 2 Jan 2018
Oops, turns out it is there. I just tried 'VerticalAlignment','top' and it works. Should be included in the help file associated with 'text'?
Jeff Owen
Jeff Owen on 2 Jan 2018
When inserting text into a figure, Matlab gives 'left, center, or right' as options for horizontal placement. Why not 'top, middle, and bottom'? I have a vector of text strings, the top of which I want to position at the top of the graph, but the placement is automatically 'middle'. The length of the vector changes from time to time. It would be clumsy to have to re-calculate the placement coordinates based on the length of the vector. Easier if I could just say 'top'.
dpb on 1 Dec 2017
textscan has only limited subset of the allowable formatting strings -- specifically, '%X' for hex data is missing. Why? Are we supposed to not ever have hex data for input? Why can't/doesn't it handle all available forms as are provided in the underlying C i/o library with fscanf and friends?