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.
What should go in a next-generation MATLAB X?
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.
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.
- When switching between multiple editor tabs, the file browser sidebar should highlight and select the file that is currently active.
- When there is an image or video file in the file browser, double-clicking it should open an image preview or start video playback directly, rather than popping up the Import Data window.
- MATLAB's built-in video player (e.g., vision.VideoPlayer) has not been updated for a long time; its playback interface is very outdated and lacks modern controls. Customizing the controls is inflexible, and redesigning a modern player using App Designer is quite difficult.
- It would be best to change the Git file‑status color indicators in the File Browser to something like VS Code's Git file status markers: https://code.visualstudio.com/docs/sourcecontrol/overview
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.
- renderer performance gets significantly worse as a function of the figure/axes size on the monitor
- text() objects scale terribly and cause the axes to become very slow
- modern axes objects use "linger" mechanics that bog down performance (https://undocumentedmatlab.com/articles/improving-graphics-interactivity)
- patch and surface objects can become quite slow when interacting with them, particularly with a maximized figure
- uifigure performance is so bad (and worse on Linux vs. Windows) that we do not use it for anything except for the occasional geoglobe() plot
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.
- counter += 1; salery *= 2 % operator assignment, or whatever it is called
- y = (x < 0) ? 3 : 2*x; % ternary operator
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.
- A real, beautiful dark theme
- Improving the appearance of figures. Reduce padding around subplots, set default axis and tick mark color to black, adjust default linewidth and font sizes to be a bit larger. In general, try to make figures made quickly with default settings look better.
- Multi-start options for all solvers in the optimization/curve fit toolbox.
- Consistent arguments for plotting functions. I think some still use different capitalization schemes (like "LineWidth" vs "linewidth").
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.
- a tutorial of using splitapply to take advantage of parallel computation.
- a tutorial of assignment and indexing involving comma-seprated list, cell array. It not only shows what works, but also explains what syntax would go wrong, and why it go wrong.
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.
- T(row,:); a single row table
- C = table2cell(T(row,:); a cell array
- C{:}; a comma-separated list.
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.
- Being dynamically typed makes large programs irritating to develop and makes the language slower (JIT needs some time to do its thing); I think a compiled statically typed MATLAB would be amazing (yes, I know the arguments block is a thing, but that's still checked at runtime)
- In-editor vim emulation (IdeaVim is the ideal case)
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.
- dir() can return a struct array, like it does now
- dir() could hypothetically return a 2D cell array in which you "just had to know" which offset corresponded to which information. This would use more memory than a struct array and would be notably less user-friendly
- dir() could hypothetically return a table() of information. From a user experience perspective this might not have been a bad choice. But in practice, table() operations are slower than struct array operations. And in practice tables() were not introduced until R2013b, long after dir() had been designed
- dir() could hypothetically return an object array with a bunch of properties and methods. Comma seperated lists would probably end up being used internally, but I suppose could have been hidden from the user. In practice though, object operations are slower than struct operations.
Permanently delete this reply?
This cannot be undone.
- a string array of the absolute folder/filenames.
- the structure 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.
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.
- I use the editor undocked. Please can we have the capability to display a watchlist of variables in a panel in the editor. Also, you should be able to right click on a watched variable and set a breakpoint to halt when the value changes or some user specified conditional relating to that variable is satisfied. Basically, please can we have the MS Visual Studio watchlist.
- The call stack display in the editor is absolutely useless if the call stack is deep, which it often is with OOP. Can't we have this as a proper list? Having to open and re-open a tiny dropdown menu is hopeless. The horizontal list that you get with the live editor is also useless if the stack is deep. It needs to be a list which you can pin open, and where you click on it to move the stack frame. I routinely resort to using dbstack at the command line to get round this, but then clicking the output from dbstack doesn't move the stack frame so it is only half useful. Also, because the output from dbstack moves off the screen when you enter other commands and has to be regenerated to stay up-to-date, it's hard to mentally "keep your finger in the pages of the book where you want to go back to" when you are concentrating hard.
- Finally, and this is a big ask I'm sure, can we have the capability to drag the instruction pointer during debugging and also modify code on the fly when debugging.
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.
- Confusion: I can't vistually tell if someObjectName(1,3) is a function call or index into an array.
- Muscle memory: In the other languates, indexing always uses [ ] , so I end frequently up typing the square brackets and creating syntax errors.
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.
- Haskell's guards and list comprehensions,
- Lazy containers,
- LISP keywords,
- LISP style maps, in which the :keyword-with-hyphens is also a function that retrieves data from an object,
- Python's convention of defining ```__str__(self)``` to mean "This is what happens when you cast to a string," ```__int___``` for "This is what happens when you cast to an int," etc. Optional methods that support every kind of cast you could want.
- More modern kinds of loops. ```for i in <arbitrary_container>``` for example. Whether the loop is executed in any particular order depends on whether the container has any kind of order, etc.
- An API for defining language extensions. This would allow the community to experiment with new language features, making it cheaper & easier for Mathworks to see which language features gain traction. Mathworks would always have the option to include the most popular language extensions in a future release.
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.
- such a thing could potentially make resource tracking easier
- there might be reason to warn about assigning between unlike data types. For example if A were uint8 but class B carried int8 then you might want a warning about negative values being truncated
- not sure what else...
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.
Too many input arguments.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- Default everything to the 1st dimension (i.e. columns are default, not rows). Such as 1:3 should give [1 2 3].' and not [1 2 3].
- Then follow the dimensions in order (everything scales accordingly). In such way you can drop all those nd doppelgängers...
- Suppress the minumum of 2 dimensions and drop this 2D matrix "shortcut" (for instance repmat(1, 2) should give [1 1].' and not [1 1 ; 1 1]).
- Make the order of axes X, Y, Z not Y, X, Z as it is now for *some* functions, but not for others. In my humble opinion MATLAB should follow maths, not CRTs...
- do ... while ???
- Correspondence between MATLAB's online help and the "help" for each function. Formatted help for custom functions.
- utf-8 as standard.
- Easier and possibly native handling of large constant datasets in parallel working (parallel.pool.constant().... really?).
- Ability to assign different GPUs to different workers.
- Type check for variables? So much time could be spared when the compiler can check and warn about what you are feeding a function... but there are pros and cons.
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.
- get rid of semicolons to suppress output, and
- make element-wise operations the default, rather than having to specify .*, ./, and .^ for the operation that most people want to do most of the time.
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.
- auto-complete options on inputs to custom functions
- specified type of arguments such that if an argument is supposed to be a filename or path, then it would allow you to autocomplete a path the way imread() and dir() do, but for custom functions
- keyword arguments (is that already a thing?) like in python, instead of all arguments being "equal" and having to parse out
- functional programming features such as in-line loops, if statements, direct indexing into function outputs (without an intermediate variable explicitly created).
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.
- Darktheme
- Standart font with distinguishable lI1, 0O etc. (eg. FiraCode, Input)
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.
- Everything is an object all the time.
- Every operation is through message passing.
- Environment is running and alive all the time.
- Run everywhere, Inspect everywhere, Debug everywhere, Edit everywhere.
- Entire environment object is saved to disk for fast reload.
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.
- All the workspaces on the M-code function call stack, and the contents of all variables in them.
- The state of the call stack, including what function is being executed, and where the execution pointer is in each frame.
- Contents of all persistent variables in all functions and methods, and all Constant properties in all loaded classes.
- Matlab’s low-level IO is unified with C, Live file handles are represented by ints which disconnected my refer to OS-level resources managed in the C standard library or the like.
- External Interfaces to embedded Java, C/C++, .NET, or Python code.
- Network socket state.
- Etc.
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 last index associated with the inner x?
- the index after the last one associated with the inner x?
- the index associated with the outer x?
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 any destination array being indexed with #var or # did not already exist and MATLAB can deduce the number of elements involved, then MATLAB pre-allocates the array
- MATLAB keeps track of the highest location written to, per dimension
- After the loop, if MATLAB pre-allocated, then it also truncates per-dimension according to the highest written into
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 fieldnames function returns a string row vector, not a cellstr column vector, so you can loop over cell fields with for fld = fieldnames(s) instead of for fld = string(fieldnames(s)'), which is uglier.
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.
- Start indexing from 0
- Redo package system
- Improve the class system
- Improve language a bit (like value += delta)
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: "x(1) is the first element of x"
- C: "x[0] is the contents found 0 elemtens behind the pointer x"
- Say it loud until you feel it. If you can feel it, it is programming, and not a crossword puzzle anymore.
- German: DAS Auto (neutrum)
- French: LA voiture (femininum)
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.
- Comments can begin with "#" in addition to "%".
Permanently delete this reply?
This cannot be undone.
Permanently delete this reply?
This cannot be undone.
- Furthermore, Octave adds a few syntactical extensions to Matlab that might cause some issues when exchanging files between Matlab and Octave users.
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.
- An object display customization API like Python's __str__ and __repr__. (`disp` isn't suitable.) (See The Dispstr API)
- In mixed-mode arithmetic (combining floats and ints), ints widen to floats instead of narrowing to ints.
- Integer-looking literals (like 1234) produce ints instead of doubles.
- Both single-quoted and double-quoted string literals produce string arrays; to get char arrays you need to explicitly call char(...).
- Every function uses string arrays instead of char vectors or cellstrs in its return values, when not determined by the type of one of the inputs.
- Figure handle properties use string arrays instead of char vectors.
- In string literals, backslash escapes are interpreted by the string literal itself, and not by the *printf() functions.
- import statements have file scope, not function scope.
- Class properties with (1,1) string validators default to string(missing) instead of the empty string "".
- There's a date-only localdate type to complement the date + time datetime type.
- now() and today() return datetime and localdate values, instead of double datenums.
- For that matter, pretty much every date or time returned by a function is a datetime or localdate instead of a double datenum.
- Maybe classes and functions in the same package are visible by default, using unqualified names, instead of requiring package qualification or an import statement. (Though this is mostly handled if import gets file scope.)
- The "`if false or true`" parsing quirk (where the stuff after "false" is considered the first statement inside the if block) is fixed, and the whole "false or true" is considered part of the if condition.
- File IO is done OOP style, with fopen returning a file object instead of a numeric handle.
- UTF-8 becomes the default encoding for all external text IO on all platforms.
- A revamped helptext system for embedding somewhat-formatted, somewhat-structured API reference documentation in source code. The existing helptext format is too simple and loosey-goosey.
- Maybe chars should become Unicode code points instead of UTF-16 code units, and strings and chars should be stored in Python-style "flexible-width string" format. Would save memory, and make it easier to work with emoji or exotic scripts.
- The GUI Layout Toolbox's functionality is pulled in to base Matlab, including support for relative positioning and sizing of widgets (like how Java Swing layouts work), and relative positioning layouts become the default (instead of 'normalized' or absolute-units positioning like it is now).
- Multithreading.
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.
Integers can only be combined with integers of the same class, or scalar doubles.
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.
- It doesn't differentiate between contexts needing per-element string representations, or a single string representation for a whole array.
- It doesn't work for formatting objects for inline display to %s placeholders in the *printf family of functions. (I think? Maybe there's
- It doesn't apply when the user-defined objects are stored inside fields, cells, or properties of compound data types, such as structs, cell arrays, table arrays, or other objects.
- Doesn't apply to display inside the Workspace widget of the Matlab desktop.
- It would be nice to have a distinction between human/user-presentation formats (like "str" in Python) and lower-level debugging oriented formats (like "repr" in Python).
Permanently delete this reply?
This cannot be undone.
- An object display customization API -- see the documentation on customizing the display of objects.
- Figure handle properties use string arrays instead of char vectors. -- I think most if not all Handle Graphics properties that could accept char vectors or cellstrs should also be able to accept string arrays. If you see one that you think should accept strings but it does not, please report that to Technical Support.
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.
Posts by this author
-
Discussion
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)