What is missing from MATLAB?
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.
470 Comments
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?
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
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.
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.
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])))
- action recognition: https://github.com/open-mmlab/mmaction
- video understanding, X3D: https://github.com/facebookresearch/SlowFast ,https://github.com/kenshohara/3D-ResNets-PyTorch
- reID: https://github.com/JDAI-CV/fast-reid
- track: https://github.com/ZQPei/deep_sort_pytorch,https://votchallenge.net/challenges.html
- Metric Learning: https://github.com/KevinMusgrave/pytorch-metric-learning
- image Classification: efficient,https://github.com/lukemelas/EfficientNet-PyTorch
- object detection: Centernet, https://github.com/xingyizhou/CenterNet , efficientDet, https://github.com/google/automl/tree/master/efficientdet,detectron2,https://github.com/facebookresearch/detectron2 ,PointRCNN,https://github.com/sshaoshuai/PointRCNN
- face recognition: insightface, https://github.com/deepinsight/insightface, sphereface,https://github.com/wy1iu/sphereface, arcface,https://github.com/ronghuaiyang/arcface-pytorch
- Semantic segmentation, instance segmentation,https://github.com/facebookresearch/maskrcnn-benchmark
- deeplearning preprocess data: https://github.com/NVIDIA/DALI
- StyleGAN: https://github.com/NVlabs/stylegan
- DeepNetwork Architecture:Mnasnet,https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet
- deepnetwork inference performance: https://github.com/microsoft/onnxruntime ,https://github.com/zuoqing1988/ZQCNN
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!
以上都为深度学习在各个方面有影响力的应用,但是在matlab中复现困难,虽然Matlab2019b版本支持自动微分机制,但仍然不易在matlab实现算法,微分机制效率不高,很多operators也不支持。。。
总之,我的个人建议就像上面的个人回答建议一样,我希望将来的版本可以有所改善!
- action recognition: https://github.com/open-mmlab/mmaction
- video understanding, X3D: https://github.com/facebookresearch/SlowFast ,https://github.com/kenshohara/3D-ResNets-PyTorch
- reID: https://github.com/JDAI-CV/fast-reid
- track: https://github.com/ZQPei/deep_sort_pytorch,https://votchallenge.net/challenges.html
- Metric Learning: https://github.com/KevinMusgrave/pytorch-metric-learning
- image Classification: efficient,https://github.com/lukemelas/EfficientNet-PyTorch
- object detection: Centernet, https://github.com/xingyizhou/CenterNet , efficientDet, https://github.com/google/automl/tree/master/efficientdet,detectron2,https://github.com/facebookresearch/detectron2 ,PointRCNN,https://github.com/sshaoshuai/PointRCNN
- face recognition: insightface, https://github.com/deepinsight/insightface sphereface,https://github.com/wy1iu/sphereface, arcface,https://github.com/ronghuaiyang/arcface-pytorch
- Semantic segmentation, instance segmentation,https://github.com/facebookresearch/maskrcnn-benchmark
- deeplearning preprocess data: https://github.com/NVIDIA/DALI
- StyleGAN: https://github.com/NVlabs/stylegan
- DeepNetwork Architecture:Mnasnet,https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet
- deepnetwork inference performance: https://github.com/microsoft/onnxruntime ,https://github.com/zuoqing1988/ZQCNN
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
以上都为深度学习在各个方面有影响力的应用,但是在matlab中复现困难,虽然Matlab2019b版本支持自动微分机制,但仍然不易在matlab实现算法,微分机制效率不高,很多operators也不支持。。。
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.
- 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.
- Better git support. VS Code is light-years ahead here, for example.
- 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.
- Bring the improvements of function parameter help text from live scripts to the regular .m files
Being able to compile a desktop standalone app made in app designer that works on a 32 bit Windows.
DeepNetwork analyze: https://ww2.mathworks.cn/matlabcentral/answers/475571-how-to-get-the-calculation-amount-of-deep-network-flops-analyze-network-app-does-not-seem-to-count
DeepNework object detection: https://github.com/weiliu89/caffe/tree/ssd ,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:https://github.com/kpzhang93/MTCNN_face_detection_alignment
DeepNework openpose detection:https://github.com/CMU-Perceptual-Computing-Lab/openpose
Better programatic suport for formating and manuplating live scripts, ideally full markup support in the live script enviroment.
See https://www.mathworks.com/matlabcentral/answers/282820-programmatically-run-and-export-live-script. but with mfilename() or dbstack() working as expected.
Live scripts have the ability to use markup like commands to autoformat text (https://www.mathworks.com/help/matlab/matlab_prog/format-live-scripts.html). 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.
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.
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.
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 (https://www.mathworks.com/matlabcentral/answers/393021-how-to-fold-up-code-in-live-script) , hopefully, next release will include this feature in live script.
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).
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.
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?
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.
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.
"... 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).
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.
Oops, turns out it is there. I just tried 'VerticalAlignment','top' and it works. Should be included in the help file associated with 'text'?
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'.
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?