Plotting 3D data
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
KSSV
2021-2-22
编辑:KSSV
2021-2-22
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 个评论
KSSV
2021-2-22
You have a m*3 data.....for this you cannot use surf unless you arrange them into a matrices X, Y and Z.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!