Plotting 3D data
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Dear Matlab comunity, I struggle to solve seemingly a simple problem.
I have a 54x3 matrix which I would like to plot, such that first coloumn represents x-axis, second coloumn represents y-axis and third coloumn represents a value assigned to [x,y] points.
However, when I use surf(Error_matrix), what I get is a surface scaled such that x-axis goes from 1 to 3 (as number of coloumns), y-axis goes from 0 to 54 (as number of rows) and z gives some weird combination.
In other words, I have a 6x9 checker board with an value assigned to each intersection (representing an error) and I would like to plot an error value to each of the intersections. Please find the error_matrix attached.
Can you please help me out?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/527589/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/527594/image.jpeg)
0 Kommentare
Akzeptierte Antwort
KSSV
am 22 Feb. 2021
Bearbeitet: KSSV
am 22 Feb. 2021
load('Error_matrix.mat')
x = Error_matrix(:,1) ;
y = Error_matrix(:,2) ;
z = Error_matrix(:,3) ;
xi = unique(x) ; nx = length(xi) ;
yi = unique(y) ; ny = length(yi) ;
[X,Y] = meshgrid(xi,yi);
Z= reshape(z,ny,nx) ;
surf(X,Y,Z)
2 Kommentare
KSSV
am 22 Feb. 2021
You have a m*3 data.....for this you cannot use surf unless you arrange them into a matrices X, Y and Z.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh 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!