+`h5disp`, `h5info`, `h5read`, `h5readatt`, `H5F.open`, and `H5F.is_hdf5`
+`h5disp`, `h5info`, `h5read`, `h5readatt`, `H5F.open`, and `H5F.is_hdf5`
- Dictionaries in JSON files can now be read and written using the
- Dictionaries in JSON files can now be read and written using the
`readdictionary` and `writedictionary` functions
`readdictionary` and `writedictionary` functions
- Symbolic links support
- Symbolic links support
+ new `createSymbolicLink` and `isSymbolicLink` functions
+ new `createSymbolicLink` and `isSymbolicLink` functions
+ new `ResolveSymbolicLinks` name-value argument with the `delete` and
+ new `ResolveSymbolicLinks` name-value argument with the `delete` and
`rmdir` functions
`rmdir` functions
+ new `CopyLinkBehavior` name-value argument with the `copyfile` function
+ new `CopyLinkBehavior` name-value argument with the `copyfile` function
+ new `MoveLinkBehavior` name-value argument with the `movefile` function
+ new `MoveLinkBehavior` name-value argument with the `movefile` function
- When reading spreadsheet files, the behavior for merged cells can now be
- When reading spreadsheet files, the behavior for merged cells can now be
controlled using new `MergedCellColumnRule` and `MergedCellRowRule`
controlled using new `MergedCellColumnRule` and `MergedCellRowRule`
name-value arguments of `readtable`, `readtimetable`, `readmatrix`,
name-value arguments of `readtable`, `readtimetable`, `readmatrix`,
`readcell`, `readvars` and `detectImportOptions`
`readcell`, `readvars` and `detectImportOptions`
- The `zip` and `unzip` functions now support password-encrypted files
- The `zip` and `unzip` functions now support password-encrypted files
- The `sftp` function now accepts a timeout value and supports passphrases and
- The `sftp` function now accepts a timeout value and supports passphrases and
certificates
certificates
- The `summary` function now works on array data, including `numeric`, `logical`,
- The `summary` function now works on array data, including `numeric`, `logical`,
`datetime`, `duration`, and `calendarDuration` types
`datetime`, `duration`, and `calendarDuration` types
- The `isbetween` function now works on numeric, nonnumeric, or tabular input data
- The `isbetween` function now works on numeric, nonnumeric, or tabular input data
- The `rmmissing` and `rmoutliers` functions now accept an argument for
- The `rmmissing` and `rmoutliers` functions now accept an argument for
defining the location of missing entries or outliers using array or table
defining the location of missing entries or outliers using array or table
- The `table` and `timetable` data types now have a `VariableTypes` property
- The `table` and `timetable` data types now have a `VariableTypes` property
for specifying the data types of their variables
for specifying the data types of their variables
- New `violinplot` function for creating violin plots for grouped numeric data
- New `violinplot` function for creating violin plots for grouped numeric data
- New `compassplot` function to plot one or more sets of arrows originating
- New `compassplot` function to plot one or more sets of arrows originating
from the origin in polar coordinates
from the origin in polar coordinates
- New `constantplane` function to create infinite planes for highlighting
- New `constantplane` function to create infinite planes for highlighting
regions of interest in 3-D plots
regions of interest in 3-D plots
- New `IconColumnWidth` property of a `Legend` object for controlling the width
- New `IconColumnWidth` property of a `Legend` object for controlling the width
of the legend icons and the width of the legend box
of the legend icons and the width of the legend box
- New `Labels` and `LabelLocation` properties of a `Bar` object for adding
- New `Labels` and `LabelLocation` properties of a `Bar` object for adding
labels to ends of bars in bar charts
labels to ends of bars in bar charts
- The `tiledlayout` can now be called without dimensions or tile arrangement
- The `tiledlayout` can now be called without dimensions or tile arrangement
argument
argument
- The MAT-file version can now be specified with the `savefig` function
- The MAT-file version can now be specified with the `savefig` function
# MATLAB 24.1 (R2024a)
# MATLAB 24.1 (R2024a)
- Local functions can now be defined anywhere in scripts
- Local functions can now be defined anywhere in scripts
- Packages (“+” folders) are now called “namespaces” (this is only a change in
- Packages (“+” folders) are now called “namespaces” (this is only a change in
terminology, not in functionality)
terminology, not in functionality)
- New `createArray` function for generating arrays of specified class and size
- New `createArray` function for generating arrays of specified class and size
- New `islocalmin2` and `islocalmax2` for finding local extrema in 2 dimensions
- New `islocalmin2` and `islocalmax2` for finding local extrema in 2 dimensions
- New `clip` function for clipping values to a specific range
- New `clip` function for clipping values to a specific range
- New `Weights` parameter to the `mean` and `median` functions
- New `Weights` parameter to the `mean` and `median` functions
- The `iqr` function can now return the first and third quartiles of the input
- The `iqr` function can now return the first and third quartiles of the input
data by using a 2nd output argument
data by using a 2nd output argument
- New `openedFiles` function that returns the file identifiers of all open
- New `openedFiles` function that returns the file identifiers of all open
files as a row vector
files as a row vector
- New `pagelsqminnorm` that calculate minimum-norm least-squares solutions to
- New `pagelsqminnorm` that calculate minimum-norm least-squares solutions to
systems of linear equations in N-D arrays
systems of linear equations in N-D arrays
- New `pagepinv` function that calculates Moore-Penrose pseudoinverses of pages
- New `pagepinv` function that calculates Moore-Penrose pseudoinverses of pages
of N-D array
of N-D array
- The `spdiags` function now supports implicit expansion for the diagonal
- The `spdiags` function now supports implicit expansion for the diagonal
elements argument Bin. You can specify the diagonal elements as a matrix,
elements argument Bin. You can specify the diagonal elements as a matrix,
vector, or scalar, and the function expands the values if the argument is
vector, or scalar, and the function expands the values if the argument is
specified as a vector or scalar.
specified as a vector or scalar.
- New `fpolarplot` function for plotting mathematical expressions in polar
- New `fpolarplot` function for plotting mathematical expressions in polar
coordinates
coordinates
- The Python Interface now converts between MATLAB and Python dictionaries, and
- The Python Interface now converts between MATLAB and Python dictionaries, and
between MATLAB tables and Python Pandas DataFrames
between MATLAB tables and Python Pandas DataFrames
# MATLAB 23.2 (R2023b)
# MATLAB 23.2 (R2023b)
- New dictionary functions: `configureDictionary`, `lookup`, `insert`, `remove`
- New dictionary functions: `configureDictionary`, `lookup`, `insert`, `remove`
- New `mustBeSparse` validation function
- New `mustBeSparse` validation function
- New `resize`, `paddata` and `trimdata` functions for changing the size of
- New `resize`, `paddata` and `trimdata` functions for changing the size of
data by adding or removing elements
data by adding or removing elements
- New `smoothdata2` function for smoothing noisy data in two dimensions
- New `smoothdata2` function for smoothing noisy data in two dimensions
- New `kde` function for estimating a probability function by using kernel density estimation for univariate data
- New `kde` function for estimating a probability function by using kernel density estimation for univariate data
- New syntax for the `rng` and `tallrng` functions where only the algorithm is
- New syntax for the `rng` and `tallrng` functions where only the algorithm is
specified (but not the seed, which then defaults to zero)
specified (but not the seed, which then defaults to zero)
- The `readstruct` and `writestruct` functions can now manipulate JSON files
- The `readstruct` and `writestruct` functions can now manipulate JSON files
- New `cmdsep` function which returns the (shell) command separator for the
- New `cmdsep` function which returns the (shell) command separator for the
current platform
current platform
- New `expmv` function for computing a matrix exponential multiplied by a
- New `expmv` function for computing a matrix exponential multiplied by a
vector
vector
- New `piechart` and `donutchart` functions for creating configurable,
- New `piechart` and `donutchart` functions for creating configurable,
interactive pie and donut charts
interactive pie and donut charts
- New `Direction` property of the `legend` function for controlling the order
- New `Direction` property of the `legend` function for controlling the order
of legend entries
of legend entries
- New `xscale`, `yscale` and `zscale` functions for quickly change between
- New `xscale`, `yscale` and `zscale` functions for quickly change between
logarithmic and linear axes scales after plotting
logarithmic and linear axes scales after plotting
- New `xsecondarylabel`, `ysecondarylabel`, and `zsecondarylabel` functions for
- New `xsecondarylabel`, `ysecondarylabel`, and `zsecondarylabel` functions for
creating, deleting, or modifying secondary axis labels
creating, deleting, or modifying secondary axis labels
- New `xregion` and `yregion` functions for creating unbounded regions and
- New `xregion` and `yregion` functions for creating unbounded regions and
specifying multiple regions as matrix
specifying multiple regions as matrix
- New `gitrepo` object for manipulating git repositories
- New `gitrepo` object for manipulating git repositories
# MATLAB 9.14 (R2023a)
# MATLAB 9.14 (R2023a)
- Warning about indexing with no subscripts (`MATLAB:subscripting:noSubscriptsSpecified`) has been removed
- Warning about indexing with no subscripts (`MATLAB:subscripting:noSubscriptsSpecified`) has been removed
- New `combinations` function for generating all element combinations of arrays
- New `combinations` function for generating all element combinations of arrays
-`head` and `tail` functions now work on arrays
-`head` and `tail` functions now work on arrays
- New `pageeig` function for calculating eigenvalues and eigenvectors of the
- New `pageeig` function for calculating eigenvalues and eigenvectors of the
pages of N-D arrays. In this context, the N-D array is treated as a container
pages of N-D arrays. In this context, the N-D array is treated as a container
for several 2-D matrices.
for several 2-D matrices.
- The `randi` function can now create random logical arrays
- The `randi` function can now create random logical arrays
- Many functions for descriptive statistics and arithmetic (e.g. `max`, `min`, `mean`, `std`, `var`, `median`, `sum`, `prod`, `cummax`, `cummin`, `cumsum`, `cumprod`) now accept the `omitmissing` and `includemissing` options (the former being the default) (the older `omitnan` and `includenan` options are still supported)
- Many functions for descriptive statistics and arithmetic (e.g. `max`, `min`, `mean`, `std`, `var`, `median`, `sum`, `prod`, `cummax`, `cummin`, `cumsum`, `cumprod`) now accept the `omitmissing` and `includemissing` options (the former being the default) (the older `omitnan` and `includenan` options are still supported)
# MATLAB 9.13 (R2022b)
# MATLAB 9.13 (R2022b)
- New `dictionary` object (hash table)
- New `dictionary` object (hash table)
- Validation of output arguments in functions and class methods
- Validation of output arguments in functions and class methods
- New `mape` and `rmse` functions for calculating forecast errors (mean absolute percentage and root mean-squared)
- New `mape` and `rmse` functions for calculating forecast errors (mean absolute percentage and root mean-squared)
- New `isuniform` function for determining if vector is uniformly spaced
- New `isuniform` function for determining if vector is uniformly spaced
- The `stackedplot` function can now plot variables from multiple input tables or timetables
- The `stackedplot` function can now plot variables from multiple input tables or timetables
- The `detrend` function can now detrend data in a table or timetable.
- The `detrend` function can now detrend data in a table or timetable.
- New `pagenorm` function for calculating norms using pages of N-D arrays
- New `pagenorm` function for calculating norms using pages of N-D arrays
- The `errorbar` function can now plot multiple lines with error bars at once
- The `errorbar` function can now plot multiple lines with error bars at once
- New `tightPosition` function for getting the location and size of axes plotting area
- New `tightPosition` function for getting the location and size of axes plotting area
- New `tilenum` and `tilerowcol` functions for convert between rows and columns and tile numbers in tiled chart layouts
- New `tilenum` and `tilerowcol` functions for convert between rows and columns and tile numbers in tiled chart layouts
- New Code Analyzer app (and programmatic interface through `codeAnalyzer`)
- New Code Analyzer app (and programmatic interface through `codeAnalyzer`)
# MATLAB 9.12 (R2022a)
# MATLAB 9.12 (R2022a)
- New `allfinite`, `anynan` and `anymissing` functions to examine the elements of an input array
- New `allfinite`, `anynan` and `anymissing` functions to examine the elements of an input array
- The `quantile`, `prctile` and `iqr` functions are now part of core MATLAB (they were previously in the Statistics and Machine Learning Toolbox
- The `quantile`, `prctile` and `iqr` functions are now part of core MATLAB (they were previously in the Statistics and Machine Learning Toolbox
- The `rms` (root mean square) function is now part of core MATLAB (it was previously in the Signal Processing toolbox)
- The `rms` (root mean square) function is now part of core MATLAB (it was previously in the Signal Processing toolbox)
- The `std` and `var` functions now optionally return the mean as second output argument
- The `std` and `var` functions now optionally return the mean as second output argument
- New `writelines` function for writing plain text to a file
- New `writelines` function for writing plain text to a file
- New `pagemldivide`, `pagemrdivide`, and `pageinv` functions: Solve linear equations and calculate matrix inverses using pages of N-D arrays
- New `pagemldivide`, `pagemrdivide`, and `pageinv` functions: Solve linear equations and calculate matrix inverses using pages of N-D arrays
- New `tensorprod` function: Calculate tensor products between two arrays
- New `tensorprod` function: Calculate tensor products between two arrays
- The `round` function has a new `TieBreaker` name-value argument to specify how to break ties.
- The `round` function has a new `TieBreaker` name-value argument to specify how to break ties.
-`null` and `orth` functions have a new option to specify tolerance to treat singular values below a threshold as zero
-`null` and `orth` functions have a new option to specify tolerance to treat singular values below a threshold as zero
- The `norm` function can now calculate Frobenius norm on N-D arrays
- The `norm` function can now calculate Frobenius norm on N-D arrays
- The `equilibrate` function now has an option with values of `"vector"` or `"matrix"` to specify whether the output arguments are returned as vectors or matrices
- The `equilibrate` function now has an option with values of `"vector"` or `"matrix"` to specify whether the output arguments are returned as vectors or matrices
- The `rand`, `randi`, and `randn` functions now support complex input and a `RandStream` object for the `"like"` syntax
- The `rand`, `randi`, and `randn` functions now support complex input and a `RandStream` object for the `"like"` syntax
- The `eps`, `flintmax`, `intmax`, `intmin`, `realmax` and `realmin` functions now accept the `"like"` syntax to return scalars based on a prototype object
- The `eps`, `flintmax`, `intmax`, `intmin`, `realmax` and `realmin` functions now accept the `"like"` syntax to return scalars based on a prototype object
-`qr` and `gsvd` have a new `"econ"` option for economy-size decompositions
-`qr` and `gsvd` have a new `"econ"` option for economy-size decompositions
- The syntax `R = qr(A)` now always returns `R` as an upper-triangular matrix, regardless of whether `A` is full or sparse (behaviour change)
- The syntax `R = qr(A)` now always returns `R` as an upper-triangular matrix, regardless of whether `A` is full or sparse (behaviour change)
- New Code Compatibility Analyzer app
- New Code Compatibility Analyzer app
# MATLAB 9.11 (R2021b)
# MATLAB 9.11 (R2021b)
- New `parfeval` syntax for parallelizing calls to a function
- New `parfeval` syntax for parallelizing calls to a function
- New `trenddecomp` function for trend/cycle decomposition
- New `trenddecomp` function for trend/cycle decomposition
- New `ComparisonMethod` option to `min` and `max` functions
- New `ComparisonMethod` option to `min` and `max` functions
- New `sftp` function for transferring files from/to SSH servers
- New `sftp` function for transferring files from/to SSH servers
- New `outputFormat` option of the `svd` function
- New `outputFormat` option of the `svd` function
- New `exportgraphics` function to append graphics to an existing PDF file
- New `exportgraphics` function to append graphics to an existing PDF file
- New `pyrun` and `pyrunfile` functions to run Python code
- New `pyrun` and `pyrunfile` functions to run Python code
# MATLAB 9.10 (R2021a)
# MATLAB 9.10 (R2021a)
- New `name=value` syntax for passing name-value arguments
- New `name=value` syntax for passing name-value arguments
-`format` function can now get and set display format
-`format` function can now get and set display format
-`fillmissing` function now accepts a custom method
-`fillmissing` function now accepts a custom method
-`normalize` is now able to normalize multiple data sets with same parameters
-`normalize` is now able to normalize multiple data sets with same parameters
- XML support in `readtable`, `readtimetable`, `writetable`, `writetimetable`,
- XML support in `readtable`, `readtimetable`, `writetable`, `writetimetable`,
`detectImportOptions`
`detectImportOptions`
- Read over HTTP or HTTPS support for `readtable`, `readtimetable`, `readvars`,
- Read over HTTP or HTTPS support for `readtable`, `readtimetable`, `readvars`,
- New `PrettyPrint` option to `jsonencode` for adding indentation
- New `PrettyPrint` option to `jsonencode` for adding indentation
# MATLAB 9.9 (R2020b)
# MATLAB 9.9 (R2020b)
- New `pattern` and `extract` functions for string manipulation
- New `height` and `width` functions (can be used as a replacement for `rows` and `columns` that are present in Octave and that we reimplemented as missing functions; NB: the MATLAB documentation erroneously says that these functions were introduced in R2013b)
- New `mustBe*` functions for input validation
- New `pattern` and `extract` functions for string manipulation
- New `height` and `width` functions
- New `mustBe*` functions for input validation
- New `readstruct` and `writestruct` functions for reading/writing structured
- New `readstruct` and `writestruct` functions for reading/writing structured
data in XML files
data in XML files
- New `readlines` function to read a whole text file as a string array
- New `readlines` function to read a whole text file as a string array
- New `pagemtimes` function for batch matrix multiplication
- New `pagemtimes` function for batch matrix multiplication
- New `svdsketch` function for computing SVD factors of low-rank matrix sketch
- New `svdsketch` function for computing SVD factors of low-rank matrix sketch
- New `matlabRelease` and `isMATLABReleaseOlderThan` functions, meant as
- New `matlabRelease` and `isMATLABReleaseOlderThan` functions, meant as
replacements for `ver` and `verLessThan` respectively
replacements for `ver` and `verLessThan` respectively
- C Matrix API `mxCreateString` function now accepts UTF-8 encoded data
- C Matrix API `mxCreateString` function now accepts UTF-8 encoded data
- C MEX API `mexPrintf`, `mexEvalString`, `mexEvalStringWithTrap`,
- C MEX API `mexPrintf`, `mexEvalString`, `mexEvalStringWithTrap`,
`mexErrMsgIdAndTxt` and `mexWarnMsgIdAndTxt` functions now accept UTF-8
`mexErrMsgIdAndTxt` and `mexWarnMsgIdAndTxt` functions now accept UTF-8
encoded data
encoded data
# MATLAB 9.8 (R2020a)
# MATLAB 9.8 (R2020a)
- The `sparse` function now accepts vectors of integer data type for its `i` and `j` arguments
- The `sparse` function now accepts vectors of integer data type for its `i` and `j` arguments
- Support for sparse complex arrays
- Support for sparse complex arrays
# MATLAB 9.7 (R2019b)
# MATLAB 9.7 (R2019b)
- It’s now possible to use the dot-indexing operator on a function call, e.g.
- It’s now possible to use the dot-indexing operator on a function call, e.g.
`createStruct(3).aField`
`createStruct(3).aField`
- The `size` function now accepts a vector dimension argument to query multiple
- The `size` function now accepts a vector dimension argument to query multiple
array dimension lengths at a time
array dimension lengths at a time
- It’s now possible to restrict the possible values of input arguments to a
- It’s now possible to restrict the possible values of input arguments to a
function, using function argument validation
function, using function argument validation
- Numbers can be specified using hexadecimal or binary literals
- Numbers can be specified using hexadecimal or binary literals
- New `matches` function to determine if two input strings are equal
- New `matches` function to determine if two input strings are equal
- New `namedargs2cell` function to convert structure containing name-value
- New `namedargs2cell` function to convert structure containing name-value
pairs to cell array
pairs to cell array
- The `error` function now accepts a suggested fix for an uncaught exception
- The `error` function now accepts a suggested fix for an uncaught exception
(should be the first argument, as a `Correction` instance)
(should be the first argument, as a `Correction` instance)
- New `groupfilter` function for filtering data in a table, timetable, or
- New `groupfilter` function for filtering data in a table, timetable, or
matrix by group
matrix by group
- New `sheetnames` function to get names of worksheets from spreadsheet file
- New `sheetnames` function to get names of worksheets from spreadsheet file
- New `makima` function for performing modified Akima cubic Hermite
- New `makima` function for performing modified Akima cubic Hermite
interpolation
interpolation
- New `tiledlayout` function for creating tiled chart layout (now recommended
- New `tiledlayout` function for creating tiled chart layout (now recommended
over `subplot`)
over `subplot`)
# MATLAB 9.6 (R2019a)
# MATLAB 9.6 (R2019a)
- New `append` function for combining strings
- New `append` function for combining strings
- The `min` and `max` functions:
- The `min` and `max` functions:
+ now return index information corresponding to the minimum and maximum
+ now return index information corresponding to the minimum and maximum
values When simultaneously operating on more than one dimension
values When simultaneously operating on more than one dimension
+ now return the linear indices corresponding to the minimum and maximum values of
+ now return the linear indices corresponding to the minimum and maximum values of
the input array using the `'linear'` option
the input array using the `'linear'` option
- New `readmatrix`, `readvars`, and `readcell` functions for reading tabular
- New `readmatrix`, `readvars`, and `readcell` functions for reading tabular
data as a matrix, variables, or a cell array
data as a matrix, variables, or a cell array
- New `writematrix` and `writecell` functions for writing tabular data from a
- New `writematrix` and `writecell` functions for writing tabular data from a
matrix or cell array to a text or spreadsheet file
matrix or cell array to a text or spreadsheet file
- New functions `matchpairs` and `equilibrate` for solving assignment problems
- New functions `matchpairs` and `equilibrate` for solving assignment problems
- New `xcorr` and `xcov` functions for compute cross-correlation and
- New `xcorr` and `xcov` functions for compute cross-correlation and
cross-covariance (they were previously in the Signal Processing toolbox, now
cross-covariance (they were previously in the Signal Processing toolbox, now
they are in MATLAB core)
they are in MATLAB core)
- The `detrend` function can now remove piecewise polynomial trends, set
- The `detrend` function can now remove piecewise polynomial trends, set
continuity requirements, and specify sample points
continuity requirements, and specify sample points
- It is now possible to provide a suggested fix for an uncaught exception in
- It is now possible to provide a suggested fix for an uncaught exception in
the `MException` class, using the `addCorrection` method and the `Correction` class
the `MException` class, using the `addCorrection` method and the `Correction` class
- New `parallelplot` function for visualizing tabular or matrix data with
- New `parallelplot` function for visualizing tabular or matrix data with
multiple columns by using a parallel coordinates plot
multiple columns by using a parallel coordinates plot
- The `grouptransform` function now operates on arrays
- The `grouptransform` function now operates on arrays
# MATLAB 9.5 (R2018b)
# MATLAB 9.5 (R2018b)
- It is now possible to use string arrays where character vectors or cell
- It is now possible to use string arrays where character vectors or cell
arrays of character vectors were previously accepted; using double quotes
arrays of character vectors were previously accepted; using double quotes
everywhere is now encouraged
everywhere is now encouraged
- New `convertContainedStringsToChars` function to convert string arrays at any
- New `convertContainedStringsToChars` function to convert string arrays at any
level of cell array or structure
level of cell array or structure
- The following functions now accept a vector dimension argument to specify
- The following functions now accept a vector dimension argument to specify
multiple operating dimensions at a time, as well as the option `'all'` to
multiple operating dimensions at a time, as well as the option `'all'` to
specify all dimensions of an array: `all`, `any`, `bounds`, `max`, `mean`,
specify all dimensions of an array: `all`, `any`, `bounds`, `max`, `mean`,
- New `tallrng` function for controlling random number generation for tall arrays
- New `tallrng` function for controlling random number generation for tall arrays
- New `isStringScalar` function for determining whether input is a string array
- New `isStringScalar` function for determining whether input is a string array
with one element
with one element
- New `convertStringsToChars` and `convertCharsToStrings` functions to enable
- New `convertStringsToChars` and `convertCharsToStrings` functions to enable
one’s code to accept all text types as inputs without otherwise altering the
one’s code to accept all text types as inputs without otherwise altering the
code
code
- The `arrayfun`, `cellfun`, and `structfun` functions can return object arrays
- The `arrayfun`, `cellfun`, and `structfun` functions can return object arrays
of any data type, so long as the objects can be concatenated
of any data type, so long as the objects can be concatenated
- New `geobubble`, `wordcloud` and `binscatter` graphics functions
- New `geobubble`, `wordcloud` and `binscatter` graphics functions
- The `bar` function makes it possible to control individual bar colors
- The `bar` function makes it possible to control individual bar colors
- The `jsonencode` function encodes MATLAB `NaN` and `Inf` values in JSON as
- The `jsonencode` function encodes MATLAB `NaN` and `Inf` values in JSON as
null, unless asked otherwise with the `'ConvertInfAndNaN'` option set to false.
null, unless asked otherwise with the `'ConvertInfAndNaN'` option set to false.
- New `ischange` function to detect abrupt changes in data
- New `ischange` function to detect abrupt changes in data
- New `islocalmin` and `islocalmax` functions to detect local minima and maxima in data
- New `islocalmin` and `islocalmax` functions to detect local minima and maxima in data
- New `mink` and `maxk` functions for finding the k smallest or largest elements in an array
- New `mink` and `maxk` functions for finding the k smallest or largest elements in an array
# MATLAB 9.2 (R2017a)
# MATLAB 9.2 (R2017a)
- String arrays can now be constructed using double quotes
- String arrays can now be constructed using double quotes
- New `bounds` function for simultaneously determine the smallest and largest
- New `bounds` function for simultaneously determine the smallest and largest
elements of an array
elements of an array
- New `'omitnan'` option for the `prod` and `cumprod` functions
- New `'omitnan'` option for the `prod` and `cumprod` functions
- New `movmad` and `movprod` functions for computing moving median absolute
- New `movmad` and `movprod` functions for computing moving median absolute
deviation and moving product of an array
deviation and moving product of an array
- New `missing` function to represent missing data in various types of
- New `missing` function to represent missing data in various types of
containers and objects
containers and objects
- New `issortedrows` to determine if matrix or table rows are sorted
- New `issortedrows` to determine if matrix or table rows are sorted
- New `'ComparisonMethod'` and `'MissingPlacement'` options for the `sort` and
- New `'ComparisonMethod'` and `'MissingPlacement'` options for the `sort` and
`sortrows` functions
`sortrows` functions
- New `'monotonic'`, `'strictmonotonic'`, `'strictascend'`, and
- New `'monotonic'`, `'strictmonotonic'`, `'strictascend'`, and
`'strictdescend'` options to the `issorted` function
`'strictdescend'` options to the `issorted` function
- The data type of the output argument for the `compose`, `extractAfter`,
- The data type of the output argument for the `compose`, `extractAfter`,
`extractBefore`, `extractBetween`, `join`, `split`, and `splitlines`
`extractBefore`, `extractBetween`, `join`, `split`, and `splitlines`
functions is now the same as the type of input arguments (they would always
functions is now the same as the type of input arguments (they would always
return string arrays in R2016b)
return string arrays in R2016b)
- New `head` and `tail` functions for returning the top or bottom rows of table
- New `head` and `tail` functions for returning the top or bottom rows of table
or timetable
or timetable
- New `heatmap` function
- New `heatmap` function
- New `-nocompression` option to the `save` command
- New `-nocompression` option to the `save` command
-`jsondecode` now converts JSON null values in numeric arrays to `NaN`
-`jsondecode` now converts JSON null values in numeric arrays to `NaN`
- New `isoutlier` and `filloutliers` functions for detecting and replacing
- New `isoutlier` and `filloutliers` functions for detecting and replacing
outliers in an array or table
outliers in an array or table
- New `smoothdata` function for smoothing noisy data in an array or table with
- New `smoothdata` function for smoothing noisy data in an array or table with
filtering or local regression
filtering or local regression
- New `summary` function for calculating summary statistics and variable
- New `summary` function for calculating summary statistics and variable
information in tables and timetables
information in tables and timetables
# MATLAB 9.1 (R2016b)
# MATLAB 9.1 (R2016b)
- Adds “automatic broadcasting”, also known as “implicit expansion” (`bsxfun`
- Adds “automatic broadcasting”, also known as “implicit expansion” (`bsxfun`
becomes therefore essentially useless)
becomes therefore essentially useless)
- It is now possible to define local functions in scripts
- It is now possible to define local functions in scripts
- New `contains` function
- New `contains` function
- New `join`, `split`, `splitlines`, `compose`, `extractAfter`,
- New `join`, `split`, `splitlines`, `compose`, `extractAfter`,
`extractBefore`, `extractBetween` functions
`extractBefore`, `extractBetween` functions
- New `jsondecode` and `jsonencode` functions
- New `jsondecode` and `jsonencode` functions
- Introduces string arrays (with function `string`)
- Introduces string arrays (with function `string`)
- New `ismissing`, `standardizeMissing`, `fillmissing`, and `rmmissing`
- New `ismissing`, `standardizeMissing`, `fillmissing`, and `rmmissing`
functions for finding, filling, and removing missing data from arrays or
functions for finding, filling, and removing missing data from arrays or
tables
tables
- The `dir` function now accepts wildcards
- The `dir` function now accepts wildcards
- New `timetable` data container and `timerange` function
- New `timetable` data container and `timerange` function
# MATLAB 9.0 (R2016a)
# MATLAB 9.0 (R2016a)
- No more 32-bit support
- No more 32-bit support
-`writetable` is now able to write Excel files on GNU/Linux and macOS
-`writetable` is now able to write Excel files on GNU/Linux and macOS
# MATLAB 8.6 (R2015b)
# MATLAB 8.6 (R2015b)
# MATLAB 8.5 (R2015a)
# MATLAB 8.5 (R2015a)
- New `mxIsScalar` function in MEX interface (but the function was apparently already present in R2014a, though not officially supported nor defined in headers)
- New `mxIsScalar` function in MEX interface (but the function was apparently already present in R2014a, though not officially supported nor defined in headers)
- New `webwrite` function
- New `webwrite` function
- First version to officially support Windows 10, see https://fr.mathworks.com/matlabcentral/answers/223444-is-matlab-compatible-with-windows-10
- First version to officially support Windows 10, see https://fr.mathworks.com/matlabcentral/answers/223444-is-matlab-compatible-with-windows-10
- Many functions for descriptive statistics and arithmetic (e.g. `max`, `min`, `mean`, `std`, `var`, `median`, `sum`) now accept the `omitnan` and `includenan` options (the former being the default)
- Many functions for descriptive statistics and arithmetic (e.g. `max`, `min`, `mean`, `std`, `var`, `median`, `sum`) now accept the `omitnan` and `includenan` options (the former being the default)
# MATLAB 8.4 (R2014b)
# MATLAB 8.4 (R2014b)
- New `webread` function
- New `webread` function
# MATLAB 8.3 (R2014a)
# MATLAB 8.3 (R2014a)
- Support for new Ethernet interface naming under GNU/Linux (older versions are
- Support for new Ethernet interface naming under GNU/Linux (older versions are
difficult to install on modern GNU/Linux systems), see https://fr.mathworks.com/matlabcentral/answers/73938-activating-on-linux-without-eth0
difficult to install on modern GNU/Linux systems), see https://fr.mathworks.com/matlabcentral/answers/73938-activating-on-linux-without-eth0
- New `isdiag`, `isbanded`, `issymmetric`, `ishermitian`, `istril`, `istriu`,
- New `isdiag`, `isbanded`, `issymmetric`, `ishermitian`, `istril`, `istriu`,
and `bandwidth` functions for testing matrix structure
and `bandwidth` functions for testing matrix structure
- New `sylvester` function for solving the Sylvester equation
- New `sylvester` function for solving the Sylvester equation
# MATLAB 8.2 (R2013b)
# MATLAB 8.2 (R2013b)
- New `readtable` and `writetable` function (the latter not yet capable of writing Excel files on GNU/Linux and macOS, and needing Microsoft Excel installed on Windows)
- New `readtable` and `writetable` function (the latter not yet capable of writing Excel files on GNU/Linux and macOS, and needing Microsoft Excel installed on Windows)
# MATLAB 8.1 (R2013a)
# MATLAB 8.1 (R2013a)
- New option `stable` to `intersect` and other set manipulation functions
- New option `stable` to `intersect` and other set manipulation functions
- New `strsplit` and `strjoin` functions
- New `strsplit` and `strjoin` functions
# MATLAB 8.0 (R2012b)
# MATLAB 8.0 (R2012b)
- Syntax for abstract classes
- Syntax for abstract classes
# MATLAB 7.14 (R2012a)
# MATLAB 7.14 (R2012a)
-`xlsread` now natively supports `.xlsx` files on all platforms (no need to
-`xlsread` now natively supports `.xlsx` files on all platforms (no need to
have Microsoft Office installed)
have Microsoft Office installed)
# MATLAB 7.13 (R2011b)
# MATLAB 7.13 (R2011b)
- New `narginchk` function
- New `narginchk` function
# MATLAB 7.12 (R2011a)
# MATLAB 7.12 (R2011a)
- New random number generators interface (`rng`, `getGlobalStream` and `setGlobalStream` functions)
- New random number generators interface (`rng`, `getGlobalStream` and `setGlobalStream` functions)
- New `ichol` function
- New `ichol` function
# MATLAB 7.11 (R2010b)
# MATLAB 7.11 (R2010b)
- New `isrow`, `iscolumn` and `ismatrix` functions
- New `isrow`, `iscolumn` and `ismatrix` functions
# MATLAB 7.10 (R2010a)
# MATLAB 7.10 (R2010a)
- Ships with MKL 10.2, which fixes a nasty bug in `dgges` (for which a
- Ships with MKL 10.2, which fixes a nasty bug in `dgges` (for which a
workaround has been implemented in the `mjdgges` MEX)
workaround has been implemented in the `mjdgges` MEX)