Singular Value Decomposition of a Large XYZ file
    7 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 Creating and Concatenating Matrices 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!

