Plotting points in 3D with mesh

59 views (last 30 days)
AFRAZ SALIM
AFRAZ SALIM on 26 Apr 2020
Commented: AFRAZ SALIM on 26 Apr 2020
I have three vectors (X,Y,Z) of equal size. I want to plot them in 3D and interpolate the points. I use following code to plot the points but the figure that i get is not good enough. The plot that i get is also attached. Can someone explain kindly, what i am doing wrong. if more information is needed then kindly let me know.
Note that one vector represents x-coordinate while second represents y-coordinate and third one z-coordinate. If there is any better to visualize this scatter plot(interpolated) that will be also great.
plot3(first_test_vector,second_test_vector,test_label,'.'),hold on
title('1000 points selected for training data & interpolation of test data')
xlabel('x'), ylabel('y'), zlabel('Values')
legend('Sample data','Interpolated test data','Location','Best')
x = meshgrid(first_test_vector);
y = meshgrid(second_test_vector);
z = meshgrid(test_label);
mesh(x,y,z)
colorbar
title('Interpolated test data')
legend('Sample Points','Interpolated test data','Location','NorthWest')
  1 Comment
Rik
Rik on 26 Apr 2020
Do you want to create a surface? And can you share your data or write code that will generate plausible data?

Sign in to comment.

Accepted Answer

J. Alex Lee
J. Alex Lee on 26 Apr 2020
Edited: J. Alex Lee on 26 Apr 2020
For just visualizing the chosen data in a surface, does this look like what you want?
clc;
close all;
clear;
N = 500;
X = rand([N,1])*2*pi;
Y = rand([N,1])*2*pi;
Z = sin(X).*cos(Y);
scatter3(X,Y,Z,'.')
T = delaunay(X,Y)
hold on
trimesh(T,X,Y,Z,"FaceAlpha",0)
For actual interpolating, look into "scatteredInterpolant"

More Answers (0)

Community Treasure Hunt

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

Start Hunting!