Plotting 3D data

1 回表示 (過去 30 日間)
Adam Rajcan
Adam Rajcan 2021 年 2 月 22 日
コメント済み: KSSV 2021 年 2 月 22 日
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?

採用された回答

KSSV
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 件のコメント
Adam Rajcan
Adam Rajcan 2021 年 2 月 22 日
Exactly, thank you so much! Could you please also write a short explanation of what went wrong? Or forward me to some tutorial, where I can get to understand the issue?
KSSV
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 ExchangeSurface and Mesh Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by