Singular Value Decomposition of a Large XYZ file
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Oguzhan M
el 14 de Ag. de 2018
Comentada: Oguzhan M
el 21 de Ag. de 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 comentarios
Respuesta aceptada
Christine Tobler
el 14 de Ag. de 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.
Más respuestas (1)
Christine Tobler
el 16 de Ag. de 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?
Ver también
Categorías
Más información sobre Linear Algebra en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!