You are now following this channel
- You will see updates in your content feed.
- You may receive emails, depending on your notification preferences.
You are now following this topic
- You will see updates in your content feed.
- You may receive emails, depending on your notification preferences.
Pin this topic?
This action will pin this post making it appear at the top of the recent discussion pages in the community.
Permanently delete this topic?
This cannot be undone.
Direct link to this reply:
Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
To assign to or create a variable in a table, the number of rows must match the height of the table.
Error in tabular/addvars (line 184)
b = move(b).dotAssign(newvarnames{ii},varargin{ii}); % b.(newvarnames{ii}) = varargin{ii}
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- temp = [T.data{:}]; output = temp(ROWS, NONSCALAR_COLUMNS); -- that is, convert everything into one large array first, then extract the desired rows and columns from that array
- temp = [T.data(NONSCALAR_COLUMS){:}]; output = temp(ROWS,:); -- that is, extract the desired columns, convert everything in those columns to one large array, then extract the desired rows from that array
- temp = cellfun(@(M) M(ROWS), T.data, 'uniform', 0); temp = temp(NONSCALAR_COLUMNS0; output = [temp{:}]; -- that is, extrace the desired rows from every column, extract the desired subset of columns, then convert what results into one large array
- temp = cellfun(@(M) M(ROWS), T.data(NONSCALAR_COLUMNS), 'uniform', 0); output = [temp{:}]; -- that is, extrace the desired columns, extract the desired rows from those columns, then convert what results into one large array
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- If you are doing timings, run in a function, not a script, and not at the command line. I'm not even 100% up to date on all the optimizations the language can do in functions vs. scripts ("One thing is to not assume ...") , but functions are how you are actually using your code, so do the same for your timings.
- "% do something with onecomb ... " Ay, there's the rub. "Something" might be really fast, but for the output of combinations, especially for the parameter sweep use case, it's likely an expensive calculation that dwarfs any table subscripting. So far all the timings I've seen in this thread include "nothing" as "something", but maybe I missed it.
- For a parameter sweep, I can imagine having some simulation, and doing this:
- As I said, T.Variable and T.VariableName(i) are the fastest operations to extract data from a table. If a row is what you need, T(i,:) is much faster than T{i,:}, but of course if a numeric vector is what you need, then you'd need to turn t(i,:) into that.
- I mean, without knowing what's being done with each of those rows, this is somewhat of an abstract discussion. As Steve said,
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- One thing is to not assume that things never get better. Subscripting performance for tables, both reference and assignment, has gotten a lot faster over the last few years.
- Some subscripting syntaxes are faster than others. T.Var(1) is always gonna be faster than T{1,"Var1"}. Much more going on in the latter.
- Another thing is to not throw the baby out with the bath water. In a tight scalar loop, if accessing data in a table is a bottleneck, it is very often possible to hoist that part of the code into a function call, so the original loop becomes something like [t.Var1,T.Var2] = loopingFun(T.Var3,T.Var4). The rest of your code that holds data in a table stays the same.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- Uneditable code - I understand why this is there, but Matlab is used by a lot of expert users as well as new users. It is ridiculous that we have no way to edit large blocks of code in an App Designer app. There ought to be an expert mode where you can simply edit anything you want, with all the risks that come with that in potentially making your app no longer work. I want to be able to edit the order of my properties and methods blocks - I always put my public ones at the top, private ones below, it's just my way of working - I don't want to enforce it on others, but I want the capability to do it myself. Also I always name my objects as 'obj' in every class I've written in over 10 years. Being forced to name it 'app' or 'comp' in un-editable function signatures is infuriating because I still just naturally use 'obj' in the code body without thinking and it wastes time fixing it.
- Public components - part of the same problem as the first point. I very rarely want all the components of my app to be public properties so that any external code can just mess with them as they choose. I want them private, and again, just having the option to do this is all I need. If other people want theirs public then fine, let them do that too, but at least give a choice to edit this.
- Save/debug behaviour - why does this behave differently to in the regular editor. It is so irritating and time-wasting when as a user of Matlab a way of working is ingrained in me from 17 years of working in the software and then this 'new' editor behaves differently. In the regular editor, when you are in debug mode you can edit a file and when you hit 'Save' it stops the debug and saves the file. I use this literally all the time when fixing bugs from a breakpoint. In App Designer you simply cannot save in Debug mode. You first have to click to stop debug and then save. Of course it's a small thing when you do it once, but when you are doing this 10s of times per day the inconsistency between the two editors seems totally un-necessary,.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- license files for Windows are stored inside the installation directory, and if it were read-only then it would not be possible to activate windows without root access
- saving the matlab path writes into the installation directory by default and most people don't know to take the step to save the path elsewhere
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- OOP - No multi class files. This combined with the other issues prevent me from using ver the "Single-responsiblity Principle".
- Namespaces- No within file name spaces. No within file imports
- File Search: As of 2021a the in file search and cross file search is still a joke. there is no continuous search. This adds a lot of time to development. I basically use the current folder panel to jump between files. Also the search bar should be a panel like in most IDEs.
- Tab Completion: Originally the lack of good tab completion for python and MATLAB was attributed to the dynamic nature of the languages. Now python has Tabnine and Kite. Matlab has nothing.
- Function Input Hints: Spotty.
- Function Documentation when you hover with mouse over function:
- No Syntax code highlighting: At least highlight the MATLAB functions.
- No intellisence equivalent.
- I could go on.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- OOP: MATLAB OOP implementation is worse than all other well-known modern languages. Why? LabVIEW is actually worse but that is not a text based language.
- Live Editor: Users wanted a Jupyter notebook like interface for MATLAB. Instead of creating an official stable feature rich plugin for Jupyter notebook, TMW released the live editor. I don't know how TMW could checked off/ released that product in 2016. (They probably ignored tester feedback) You did not need the end users’ feedback to know that it was too slow. The input lag made me feel like I was VNC’d into a computer oversees. Also, the execution time/ for loops….. I kept trying it from 2016- 2018. I have not touched it since 2018b.
- Editor: I see a lot of complaints on the lack of modem IDE features. I agree. Before you create a new editor, I would recommend using an existing Opensource editor. I think it would be a good Idea to create a feature rich plugin for VSCODE.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- Matlab is comparatively slow and less fluid at downloading time series over an internet connection. For example, I often need to acquire geophysical time series from a repository called IRIS (https://ds.iris.edu/ds/nodes/dmc/software/downloads/irisfetch.m/). One tool exists (irisFetch.m), but it acquires and writes out data files at a relatively glacial pace.
- Plotting anything on a global map, like geophysicla data, is slow and error prone (e.g., geoplot.m).
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- http://people.csail.mit.edu/bkph/articles/Tsai_Revisited.pdf Tsai, Roger Y. (1986)
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.

Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- The inconsistency by using '%g" as default numeric format -- variable number digits is just bxxx-ugly,
- Can't turn off ticks on opposite side axes with multiple axes except by box off -- that then leaves no outline so have to draw it on boundary manually
- Still no builtin hatching patterns
- Only 8 named colors. Really, in 2021???
- Similar limitations for markers.
- Can't set xlim datetime on new axes unless first draw with a datetime. (The way to change is undocumented)
- Putting datetime and 'XAxisLocation','top' results in clipping year; doesn't adjust for needed added room
- And on and on and on...
Permanently delete this reply?
This cannot be undone.

Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- import is kinda useless, because it's function-scoped instead of file-scoped or class-scoped.
- Database Toolbox returns empty result sets as [] instead of a 0-row table with the proper column structure, even if you requested table format.
- Database Toolbox tries to be too smart for its own good, with parsing your SQL and changing behavior based on it, doing probes for server-side structures, etc.
- datetime's exact semantics, precision, and storage costs are opaque and undocumented
- Some Matlab-supplied functions (I'm looking at you, datetime(strs) constructor!) use try/catch on the happy path, making dbstop if all error basically unusable.
- No generic user-defined-object display customization that works when you stick your objects inside struct, cell, or tables.
- No mutable Static properties on classes, only Constants.
- Mixed-mode arithmetic silently narrows floats to ints, instead of widening ints to floats.
- No good code browser in the Matlab Desktop, like basically every other IDE has.
- The Details widget in the Matlab Desktop shows the last file you clicked in Current Folder instead of the one that's focused in the Editor, and you can't sort its contents alphabetically. (MathWorks came so close to making this one Good, and yet...!)
- Matlab Production Server's management and monitoring tooling is pretty weak.
- If you call a Static method from another Static method on the same class, you have to fully package-and-class-qualify the name of that method.
- Subtly broken Java XML API setup in the included JVM.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- MATLAB oficial support mainly the Intel Parallel Studio XE for (C/C++ and Fortran) on Windows platform. GNU compilers support on Windows should be main target for MATLAB (MinGW is now nearly obsolet ... latest version is from 2017??!!)
- slow updating process of updating GNU compilers version on Linux, which does not correspond to the current state of default GNU compilers version on supported Linux distributions
- and moreover, terrible situation with supported NVIDIA CUDA Toolkit versions (required by GPU coder and compiled CUDA objects). Matlab supported CUDA Toolkit does not corresponds to the required GCC versions on many recent LTS Linux distributions
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.



Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- The "item value" box is tiny
- Keeping track of item label - item value pairs is unnecessarily complicated by the vertical arrangement (vs a table-type view)
- poor auto-updating of labels/values when the other is changed
- pasting code into the value box often separates lines unexpectedly (it seems to sometimes cut at mid-line whitespace)
- cannot select text in output
- copied text does not always match displayed text (e.g., copied cell arrays say "1×2 double" while output displays the numbers)
- unclear rules (moments ago, I learned that what's copied depends on where in the output box I right click)
- can't read long code lines
- displays variables differently (e.g., doesn't truncate table rows)
- doesn't warn if code has been changed without re-running (so code and output don't match)
- add "run from beginning to current cell"
- code prediction seems better than for normal scripts (even aside from the fact that variables are more often already evaluated when working with live scripts)
- not enough heading levels
- I'd prefer controls default to not running anything
- "unable to run code analysis... is an invalid Matlab file name."
- no way to collapse output (vs clearing)
- no way to fully un-collapse output (e.g., display full table instead of scrolling)
- figures are saved with "Visible" = off, so they don't open as expected
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.

Permanently delete this reply?
This cannot be undone.
- The "item value" box is tiny - You can increase it, click once to select the Dropdown, then once moreon the value box, you'll get these "grips" to increase it
- Keeping track of item label - item value pairs is unnecessarily complicated by the vertical arrangement (vs a table-type view) - not so clear what you mean by this
- poor auto-updating of labels/values when the other is changed - set your fields to get the property values, and rather change properties than fields if you will use those values
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- The community. There are some heavyweight MATLAB users (Walter Roberson, Image Analyst, John D'Errico, Jan, and I'm sure I missed many of you) who have immense knowledge and are also very active on MATLAB Answers. However, the forum is full of people whose posts do not show any research work. They expect complete solutions without showing any effort. When Python users raise issues on GitHub/Gitlab, etc., I don't have this feeling. Related: I also feel that the open-source nature of Python produces quality contributors.
- Lack of momentum. There are too many awesome projects that stop because the maintainer a) lost interest or b) left the university and has no access to MATLAB any more. Being closed-source really hampers the development.
- Ecosystem. I can only talk about areas I experienced, but Python (and now Julia) has such an extensive ecosystem and an active and responsive community, that one does not have to start reimplementing everything. MATLAB toolboxes sometimes provide a solution but university clusters often miss many toolboxes.
- Editor. The MATLAB Editor (the classical one, not the Live Editor) is useful but misses some features that others have. As if the MATLAB linter was available for other editors too!
- OOP. Reading the threads, people criticize the OOP syntax of MATLAB. To me, it is not a problem (Python also explicitly needs the instance as the first method parameter), but custom types are really slow in MATLAB. I would love to have (nearly) costless abstraction as in Julia or in C++; it happened to be that because of speed issues I had to sacrifice readability and turn to built-in types to achieve reasonable speed.
- Lack of efficient data structures. Complex problems require fast hash maps, linked lists and other data structures.
- Parallelism. The fact that open source tools support many levels of parallelism and MATLAB offers it in a toolbox is a big drawback. Moreover, launching parallel pools open new MATLAB workers that spend about 700 MB each! I didn't see any efficient massively parallel applications done by MATLAB.
- Invoking C code, let alone C++, is difficult with the MEX interface. The really powerful MEX commands (see on UndocumentedMATLAB) are not documented and change all the time. You also cannot debug MEX code with MATLAB Editor.
- To generate standalone application, you need an additional toolbox. Moreover, the MATLAB runtime is huge, so for a simple application, you have to download hundreds of megabytes. The startup time is also very slow.
- TMW's focus on shiny features and the toolboxes. The core numerical algorithms changed very little in the past 20 years. To me, MATLAB's focus should be on computational mathematics (as it originally was) and not polishing the IDE and other secondary issues. Yes, they are important, but supporting tensor operations, introducing state-of-the-art ODE solvers (as Julia's wonderful DifferentialEquations.jl) would be more useful for a scientist. I would just highlight git support. If someone has to solve complex git-related tasks, they will use a feature-rich editor (such as SmartGit) or will use the command line. What I want to point out is that TMW spends its workforce on implementing many things into MATLAB that simply cannot compete with specialized tools (diff tools, git support, etc.). If they concentrated on the core of MATLAB (things that are unrelated to the IDE), all people could profit from it. I saw the tendency that computational scientists use MATLAB less and less because they need the features that other languages' rich ecosystems provide. Honestly, I am deeply disappointed that TMW tries to satisfy novice engineers instead of providing powerful tools. You are losing hardcore programmers and scientists this way (cf. points 1-3). I follow the release notes and bitterly recognize that in the last decade, almost no improvement was made for the core. Just the superficial features... Sigh...
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- SUM([]) == 0,
- PROD([])==1,
- FACTORIAL(0) == 1,
- ZEROS(0) == []
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- Run other MATLAB code at the same time as a long running calculation
- Create more responsive user interfaces
- parfeval and related functionality such as afterEach and afterAll
- parallel.pool.DataQueue and related functionality such as afterEach
- parallel.pool.PollableDataQueue and related functionality such as poll
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.

Permanently delete this reply?
This cannot be undone.