Transform matrix into vector X Y Z

6 visualizaciones (últimos 30 días)
Fernando Lobo
Fernando Lobo el 18 de Mzo. de 2021
Comentada: Fernando Lobo el 18 de Mzo. de 2021
Hi!
I have a matrix 1024 * 1024 and I need to do a regression with this matrix, but first I need to convert it to a X Y Z vector for example.
2 2 3
1 5 7
9 8 7
Where X = n, Y = m, and Z = value, in order to get the vectors in this form
(1 , 1, 2)
(1 , 2 , 2)
(1, 3, 3)
(2, 1, 1)
(2, 2, 5) , etc
Thank you for your help

Respuesta aceptada

KSSV
KSSV el 18 de Mzo. de 2021
You may follow something like this:
A = [2 2 3
1 5 7
9 8 7];
[m,n] = size(A) ;
[X,Y] = meshgrid(1:n,1:m) ;
P = [X(:) Y(:) A(:)]

Más respuestas (1)

Walter Roberson
Walter Roberson el 18 de Mzo. de 2021
Editada: Walter Roberson el 18 de Mzo. de 2021
A = [
2 2 3
1 5 7
9 8 7]
A = 3×3
2 2 3 1 5 7 9 8 7
[X, Y, Z] = find(A);
XYZ = sortrows([X, Y, Z])
XYZ = 9×3
1 1 2 1 2 2 1 3 3 2 1 1 2 2 5 2 3 7 3 1 9 3 2 8 3 3 7
Note: this particular implementation does not output 0. If you need 0 then a different implementation would be used.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by