Singular Value Decomposition of a Large XYZ file
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Oguzhan M
le 14 Août 2018
Commenté : Oguzhan M
le 21 Août 2018
Hi everyone, I need to perform Singular Value Decomposition on a XYZ file (surface scan file with 3 columns and millions of row) to simplify the surface. In the papers I have checked in the literature, they present a 2D picture (x-z base) colouring with amplitude (y-height), and state that the fluctuating surface elevation of the surface y(x,z) should be decomposed. Any idea how to turn very narrow randomly lined xyz values into a matrix that we can implement SVD? Cheers.
0 commentaires
Réponse acceptée
Christine Tobler
le 14 Août 2018
First thing that occurs to me would be to interpolate the xyz data to lie on a rectangular grid in the x-z plane, and to then apply SVD to the resulting matrix (millions of rows should translate to a number of rows and columns in the thousands?).
Here is a doc example for how to interpolate xyz-data on a grid.
Plus de réponses (1)
Christine Tobler
le 16 Août 2018
The way I thought of it was to use x and z as the 2d grid on which to interpolate, and y as the function value. Something like this:
x = randn(10, 1); y = randn(10, 1); z = randn(10, 1);
[xi,zi] = meshgrid(linspace(-1, 1), linspace(-1, 1));
yi = griddata(x,z,y,xi,zi); % yi is a matrix with the values of y interpolated on the grid (xi, zi)
In this case, you would do SVD of the yi data, I think?
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!