Mercurial > matrix-functions
diff toolbox/matrix.m @ 2:c124219d7bfa draft
Re-add the 1995 toolbox after noticing the statement in the ~higham/mctoolbox/ webpage.
author | Antonio Pino Robles <data.script93@gmail.com> |
---|---|
date | Thu, 07 May 2015 18:36:24 +0200 |
parents | 8f23314345f4 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolbox/matrix.m Thu May 07 18:36:24 2015 +0200 @@ -0,0 +1,99 @@ +function A = matrix(k, n) +%MATRIX Test Matrix Toolbox information and matrix access by number. +% MATRIX(K, N) is the N-by-N instance of the matrix number K in +% the Test Matrix Toolbox (including some of the matrices provided +% with MATLAB), with all other parameters set to their default. +% N.B. Only those matrices which take an arbitrary dimension N +% are included (thus GALLERY is omitted, for example). +% MATRIX(K) is a string containing the name of the K'th matrix. +% MATRIX(0) is the number of matrices, i.e. the upper limit for K. +% Thus to set A to each N-by-N test matrix in turn use a loop like +% for k=1:matrix(0) +% A = matrix(k, N); +% Aname = matrix(k); % The name of the matrix +% end +% MATRIX(-1) returns the version number and date of the toolbox. +% MATRIX with no arguments lists the names of the M-files in the +% collection. + +% References: +% N.J. Higham. The Test Matrix Toolbox for Matlab (version 3.0), +% Numerical Analysis Report No. 276, Manchester Centre for +% Computational Mathematics, Manchester, England, September 1995. +% N.J. Higham, Algorithm 694: A collection of test matrices in +% MATLAB, ACM Trans. Math. Soft., 17 (1991), pp. 289-305. +% +% Matrices omitted are: gallery, hadamard, hanowa, lauchli, +% neumann, wathen, wilk. +% Matrices provided with MATLAB that are included here: invhilb, +% magic. + +% Set up string array a few lines at a time to avoid `input buffer line +% overflow'. + +matrices = ''; + +matrices = [matrices +'augment '; 'cauchy '; 'chebspec'; 'chebvand'; +'chow '; 'circul '; 'clement '; 'compan '; +'condex '; 'cycol '; 'dingdong'; 'dorr '; +'dramadah'; 'fiedler '; 'forsythe'; 'frank ';]; + +matrices = [matrices +'gearm '; 'gfpp '; 'grcar '; 'hilb '; +'invhess '; 'invol '; 'ipjfact '; 'jordbloc'; +'kahan '; 'kms '; 'krylov '; 'lehmer '; +'lesp '; 'lotkin '; 'makejcf '; 'minij ';]; + +matrices = [matrices +'moler '; 'ohess '; 'orthog '; 'parter '; +'pascal '; 'pdtoep '; 'pei '; 'pentoep '; +'prolate '; 'rando '; 'randsvd '; +'redheff '; 'riemann '; 'rschur '; 'smoke '; +'tridiag '; 'triw '; 'vand ';]; + +if nargin == 0 + +fprintf('Test matrices: \n') +fprintf(' \n') +fprintf('augment cycol gfpp kahan moler poisson triw \n') +fprintf('cauchy dingdong grcar kms neumann prolate vand \n') +fprintf('chebspec dorr hadamard krylov ohess rando wathen \n') +fprintf('chebvand dramadah hanowa lauchli orthog randsvd wilk \n') +fprintf('chow fiedler hilb lehmer parter redheff \n') +fprintf('circul forsythe invhess lesp pascal riemann \n') +fprintf('clement frank invol lotkin pdtoep rschur \n') +fprintf('compan gallery ipjfact makejcf pei smoke \n') +fprintf('condex gearm jordbloc minij pentoep tridiag \n') +fprintf(' \n') +fprintf('Visualization: Decompositions: Miscellaneous: \n') +fprintf(' \n') +fprintf('fv cgs gj bandred matrix show \n') +fprintf('gersh cholp mgs chop matsignt skewpart\n') +fprintf('ps cod poldec comp pnorm sparsify\n') +fprintf('pscont diagpiv signm cond qmult sub \n') +fprintf('see ge cpltaxes rq symmpart\n') +fprintf(' gecp dual seqa trap2tri\n') +fprintf(' eigsens seqcheb \n') +fprintf(' house seqm \n') +fprintf(' eigsens seqcheb \n\n') +fprintf('Direct search optimization: adsmax, mdsmax, nmsmax \n') +fprintf('Demonstration: tmtdemo \n') + +elseif nargin == 1 + if k == 0 + [A, temp] = size(matrices); + elseif k > 0 + A = matrices(k,:); + else + % Version number and date of collection. +% A = 'Version 1.0, July 4 1989'; +% A = 'Version 1.1, November 15 1989'; +% A = 'Version 1.2, May 30 1990'; +% A = 'Version 1.3, November 14 1991'; +% A = 'Version 2.0, November 14 1993'; + A = 'Version 3.0, September 19 1995'; + end +else + A = eval( [matrices(k,:) '(n)'] ); +end