MVARTOOLS is a Matlab toolbox for doing multivariate analysis and calibration. It is distributed under the GNUGeneral Public License.

MVARTOOLS was made during my M.Sc. thesis work, but was not a part of the thesis. I made it just to familiarize myself with Matlab (and Octave), and to get a better understanding of the PCA, PCR and PLS algorithms. Since 2001, I have not done any development/bug fixing on MVARTOOLS. You have been warned!

MVARTOOLS is not a state-of-the-art industrial strength multivariate package. If that’s what you are looking for, I strongly recommend PLS_Toolbox.


  1. Help and information:

  2. -contents - package contents

  3. -mvreadme - release notes

  4. -mvchanges - changes since previous release

  5. -mvwarranty - warranty information

  6. -mvcopying - the GNU general public license

  7. Data Scaling and Preprocessing:

  8. -mvcenter - mean centers the data in a row-wise matrix

  9. -mvobjcenter - object centers a row-wise matrix

  10. -mvrecenter - re-centers data in a row-wise matrix

  11. -mvvarscale - scales the data in a matrix to unit variance

  12. -mvrevarscale - rescales the data in a variance scaled matrix

  13. -mvdelobjects - delete objects (rows) in a matrix

  14. -mvmedsmooth - moving median smoothing

  15. -mvmeansmooth - moving mean smoothing

  16. -mvsavgol - Savitsky-Golay polynomial smoothing or derivation

  17. -mvsnv - Standard Normal Variate normalisation

  18. -mvdigfilt - 1st order digital filter

  19. NaN values:

  20. -mvfindnan - find objects (rows) with non-numbers

  21. -mvreplacenan - find and replace elements with non-numbers

  22. -mvremnan - removes any rows in a matrix containing NaN

  23. Plotting:

  24. -mvscoreplot - plot scores from PCA or PLS

  25. -mvnumplot - plot with numbers as plot symbols

  26. -mvstrplot - plot with text strings as plot symbols

  27. -mvstatplot - plot mean spectrum, std and relative std

  28. -mvpmplot - predicted vs. measured plot

  29. -mvregplot - add legend with filename and date

  30. -mvdensityplot - data density image plot

  31. Statistics:

  32. -mvvariance - finds the variance of each column in a matrix

  33. -mvpmstats - predicted/measured statistics

  34. Principal Components:

  35. -mvpcanipals - NIPALS algorithm for Principal Component Analysis

  36. -mvpcasvd - PCA using singular value decomposition

  37. Linear Regression:

  38. -mvmlr - multiple linear regression

  39. -mvpcrsvd - Principal Component Regression based on SVD

  40. -mvplsnipals - Partial Least Squares regression using NIPALS

  41. -mvplsnipcore - PLS NIPALS core

  42. -mvplsregcoeff - Calculate PLSR regression coefficients

  43. -mvrpls - Recursive Partial Least Squares regression

  44. -mvpredict - predict y-values from linear multivariate model

  45. -mvfullpredict - predict y-values from PLS loading weights

  46. -mvoptlv - find optimal number of latent variables

  47. Validation:

  48. -mvcrossval - cross validation (full, random, block)

  49. -mvcvbyclass - cross validation by class belongings

  50. -mvtestval - test-set validation of multivariate model

  51. Experimental design:

  52. -mvffdesign - create two-level full/fractional factorial design matrix

  53. Spectroscopy:

  54. -mvabstrans - Convert spectral absorbance data to transmittance

  55. -mvtransabs - Convert spectral transmittance data to absorbance

  56. -mvintf - calculates interference filter wavelength (and wavenumber)

  57. -mvaddsine - adds a sine to the input data

  58. -mvaddrandom - adds random noise to spectra

  59. -mvaddnrandom - adds normally distributed random noise to spectra

  60. -mvaddslope - add slope to spectrum

  61. -mvaddoffset - add offset to spectrum

  62. -mvaddmult - add multiplicative effect to spectrum

  63. -mvwlshift - wavelength shift input spectrum

  64. Miscellaneous:

  65. -mvmdist - mahalanobis distance

  66. -mvedist - euclidian distance

  67. -mvextractclass- extract X and y data for one specific class

  68. -mvwritecals - write matrix to a CALS table

  69. Matlab/Octave compability:

  70. -mvomtest - test whether the application is Octave or Matlab

  71. MVARTOOLS Test data-sets and demo-scripts:

  72. -acoustics1 - acoustics data: spectra and concentration

  73. -acoustics2 - acoustics data: spectra, concentration and temperature

  74. -synthetic - synthetic data: three constituents in a closed data-set

  75. -iris - the famous iris data-set

  76. -distdata - data for testing distance measures (mahalanobis/euclidian)

  77. -mvtest - script for testing all MVARTOOLS functions

  78. -mvdemo1 - demo-script for doing PCA on the iris data-set

  79. -mvdemo2 - demo script using PCR

  80. -mvdemo3 - demo script using PLS

  81. -mvdemo4 - demo script using factorial design

  82. -mvdemo5 - demo script using cross- and testset validation

  83. -mvdemo6 - demo script

  84. -mvdemo7 - demo script

  85. -mvdemo8 - demo script

  86. -mvdemo9 - demo script





Because the program is licensed free of charge, there is no warranty for the program, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide the program “as is” without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair or correction.

In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may modify and/or redistribute the program as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages.