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