How to transform a XYZ-Array into a XxY-Matrix with Z as values of each Mxy-Component and vice versa?

41 visualizzazioni (ultimi 30 giorni)
Hi, I have a table XYZ with three columns (xyz) as below:
1 1 1
1 2 2
1 3 3
2 1 4
2 2 5
2 3 6
3 1 7
3 2 8
3 3 9
and I want to transform it into a Mxy-Matrix with Z as value for each Mxy pair as follows:
1 4 7
2 5 8
3 6 9
On the other hand I may have directly the Matrix Mxy and would like to obtain the XYZ-table.
I already tried mesh, meshgrid, ndgrid, surf and etc... as documented, but nothing worked as I wished. It is possible that I did not understand yet how to use this commands.
I wonder if someone could tell me how to write the command to convert:
1) Table XYZ to Matrix Mxy with Z as values of each Mxy-pair 2) Matrix Mxy to Table XYZ
I thank you in advance for your help
Emerson

Risposta accettata

Walter Roberson
Walter Roberson il 18 Nov 2012
accumarray(XYZ(:,[2 1]), XYZ(:,3)]
  4 Commenti
Ander Del Olmo Sanz
Ander Del Olmo Sanz il 25 Gen 2023
I have the same problem, but in my case values are not whole number, since it is the measurement of a 3D part, but i want just to sabe the values of Z axis, so what can I do for rationa number with commas, like 5,5 or 7.8 in X and Y axis ?

Accedi per commentare.

Più risposte (1)

Chad Greene
Chad Greene il 6 Apr 2016
Thanks to Walter's excellent suggestion to use accumarray, I wrote an xyz2grid function to do this for GMT data.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by