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

 Réponse acceptée

KSSV
KSSV le 18 Mar 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(:)]

Plus de réponses (1)

Walter Roberson
Walter Roberson le 18 Mar 2021
Modifié(e) : Walter Roberson le 18 Mar 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.

Catégories

En savoir plus sur Sparse Matrices dans Centre d'aide et File Exchange

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by