Plotting 3D data
1 回表示 (過去 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?


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!