Anymatrix
is a MATLAB toolbox that provides an extensible collection of
matrices, organized in groups, with the ability to search the collection by
matrix properties.
Currently, the built-in collection contains matrices organized into 7 groups:
- contest - the CONTEST test matrix toolbox of random matrices from networks.
- core - miscellaneous matrices.
- gallery - matrices from the MATLAB gallery.
- hadamard - a large collection of Hadamard matrices.
- matlab - other MATLAB matrices (not in gallery).
- nessie - matrices from real-life networks.
- regtools - matrices from regularization problems.
The following matrices have been added since v1.0.
- core/bidiag_alt
- core/biogeography
- core/blockcirc
- core/circul_binom
- core/collatz
- core/creation
- core/cross
- core/hess_orth
- core/hess_sublu
- core/indef
- core/milnes
- core/orthog_cauchy
- core/pick
- core/stoch_cesaro
- core/stoch_compan
- core/stoch_perfect
- core/stoch_revtri
- core/tournament
- core/unitary_eye
- core/uptraporth
- Hadamard matrix of Edelman and Friedman: anymatrix('hadamard/hadamard',16,9)
The input arguments for core/totally_nonneg have been changed and the ability to return the infinity norm condition number has been added.
Clone the repository and add the root directory anymatrix/ to the MATLAB search path.
List the groups in the collection.
G = anymatrix('groups')
Show matrices in the core group.
M = anymatrix('groups', 'core')
Show help of a beta matrix in the core group.
anymatrix('help', 'core/beta')
Show properties appended to the beta matrix.
P = anymatrix('properties', 'core/beta')
Generate the 10-by-10 beta matrix.
[A, R] = anymatrix('core/beta', 10)
Start by listing all the supported properties by the anymatrix
.
P = anymatrix('properties')
Search for matrices that do not have a property 'symmetric'.
M = anymatrix('properties', 'not symmetric')
Look for matrices that are tridiagonal and not positive, or tridiagonal and symmetric.
M = anymatrix('properties', 'tridiagonal and (symmetric or not positive)')
Look for matrices that mention ' zero ' in their help comments.
M = anymatrix('lookfor', ' zero ')
For invocations that use only character vectors or strings, the MATLAB command form of invocation (as opposed to the functional form) can be used:
anymatrix help core/beta
Commands can be abbreviated to the first one or two letters that uniquely specify them:
anymatrix p core/beta
List all the available commands and shorthand aliases of commands.
anymatrix('help')
The following groups are available for downloading into Anymatrix.
-
HPL-AI-Matrix: matrix designed for use in the HPL-AI Benchmark.
-
matrices-correlation-invalid: collection of invalid correlation matrices.
-
matrices-mp-cosm: collection of matrices for testing the matrix cosine.
-
randsvdfast-matlab: provides functionality similar to anymatrix('gallery/randsvd') but uses a faster algorithm.
-
am_matrix_market: provides functionality to download matrices from the NIST Matrix Market
The examples/ directory contains codes that illustrate how to run tests over subsets of the matrices in Anymatrix.
MATLAB 2020b or newer is required.
Nicholas J. Higham and Mantas Mikaitis. Anymatrix: An Extendable MATLAB Matrix Collection. Numer. Algorithms, 90:3, 1175-1196, Dec. 2021.
Nicholas J. Higham and Mantas Mikaitis. Anymatrix: An Extendable MATLAB Matrix Collection, Users' Guide. MIMS EPrint 2021.15, Manchester Institute for Mathematical Sciences, The University of Manchester, UK. Oct. 2021.
The code is distributed under the terms of the BSD 2-Clause License; see license.txt.