how can I reshape vector data into a matrix

4 Ansichten (letzte 30 Tage)
Daria Bontch-Osmolovskaia
Daria Bontch-Osmolovskaia am 31 Jul. 2018
Can anyone help me with this please... I have a data set, shaped so. This needs to be graphed in 3D.
The first column represents locations on X-axis, the 2nd column - locations on Y-axis, and the third column is my data. The 1st & 2nd column make a grid.
How do I reshape this to make the 3rd column into a 2x2 matrix, so that the whole thing can be graphed as a surface?
Thank you beforehand!
D.

Akzeptierte Antwort

Guillaume
Guillaume am 31 Jul. 2018
How do I reshape this to make the 3rd column into a 2x2 matrix, so that the whole thing can be graphed as a surface?
You don't, it's completely unnecessary
surf(yourmatrix(:, 1), yourmatrix(:, 2), yourmatrix(:, 3));
If you wanted to do the reshape (which again is completely unnecessary), and assuming that the X and Y coordinates that are supposed to be identical are actually identical down to the last binary digit, then:
[~, ~, col] = unique(yourmatrix(:, 1));
[~, ~, row] = unique(yourmatrix(:, 2));
X(row, col) = yourmatrix(:, 1);
Y(row, col) = yourmatrix(:, 2);
Z(row, col) = yourmatrix(:, 3);
  4 Kommentare
Guillaume
Guillaume am 31 Jul. 2018
Doh! Indeed Z has to be a matrix. And the second part of the answer was also incorrect. Never mind, this is correct:
[X, ~, col] = unique(yourmatrix(:, 1));
[Y, ~, row] = unique(yourmatrix(:, 2));
Z = zeros(numel(Y), numel(X));
Z(sub2ind(size(Z), row, col)) = yourmatrix(:, 3));
Daria Bontch-Osmolovskaia
Daria Bontch-Osmolovskaia am 1 Aug. 2018
Guillame, thank you very much - that worked beautifully. Quite literally. Looks like the aurora :) Really appreciate your effort. Prior to this, I was only able to graph data interpolated, and that didn't work right. This is much better as I can see the crazy outliers. Cheers, Daria

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by