## Data Dimension Reduction

version 1.0.0.0 (1.25 KB) by
Transforms vector data into a subspace of one less dimension, along direction of smallest extent.

Updated Thu, 14 Jul 2005 16:44:49 +0000

DIMRED - Data Dimension Reduction. Linearly transforms vector data into a subspace of one less dimension. Compresses data along the (arbitrary) direction of smallest spatial extent.

[D,R,T] = dimred(X)

X = Original vector data. Each row is a data point. Each column is a dimension in the original space.
D = Reduced vector data. Each row is a data point. Each column is a dimension in the lower-dimensional space.
R = "rotation" matrix to convert data from the the reduced space back into the original data space (for example, after performing operations on the data in the lower-dimensional space). Convert D back to X by using X = D*R+T;
T = "translation" matrix to convert data from the the reduced space back into the original data space (for example, after performing operations on the data in the lower-dimensional space). Convert D back to X by using X = D*R+T;

NOTES:
(1) The narrowest dimension of the data is compressed to zero. No attempt is made to verify that this is prudent. The user may wish to compute a dimensionality ratio r such as
g = svd(X); r = min(g) / max(g);
or,
g = abs(eig(cov(X))); r = min(g)/max(g);
and then proceed if r < 1e-6, for example.
(2) To convert some function F of D back to a function G of X
in the higher dimnensional space as follows:
X = (original data)
[D,R,T] = dimred(X);
F = (result of some presumably linear operation perfomed on D)
G = F*R+T;
(3) ver 1.0, Michael Kleder, July 2005

### Cite As

Michael Kleder (2022). Data Dimension Reduction (https://www.mathworks.com/matlabcentral/fileexchange/7993-data-dimension-reduction), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R14SP1
Compatible with any release
##### Platform Compatibility
Windows macOS Linux