plotting x,y,z vertices as mesh
Show older comments
Hello there,
I have a .xls file that contains x,y,z vertics. The sequence goes something like this: x0,y0,z0,x1,y2,z2,..........x1000,y1000,z1000 (1000data points for each x,y,z)
I am wondering is it possbile to plot all the data using mesh? I plotted only x0,y0,z0 using one of the solutions I reading using trimesh, but there is line between instead of dots. https://www.mathworks.com/matlabcentral/answers/220-3d-plot-from-imported-excel-data
That's what I have so far:
clc;clear;close all;
test = xlsread('data.xls');
x=test(:,2);
y=test(:,3);
z=test(:,4);
x = rand(100,1); % Sample x data
y = rand(100,1); % Sample y data
z = exp(-(x-0.5).^2-(y-0.5).^2); % Sample z data (a 2-D Gaussian)
tri = delaunay(x,y); % Create a 2-D triangular mesh
trimesh(tri,x,y,z); % Plot the mesh in 3-D
Any suggestions and helps please?
Thanks in advance
1 Comment
Walter Roberson
on 10 Mar 2020
That approach should work, provided that you remove those 'Sample' lines.
Can you attach your data.xls for testing?
Answers (1)
KSSV
on 10 Mar 2020
clc;clear;close all;
test = xlsread('data.xls');
x=test(:,2);
y=test(:,3);
z=test(:,4);
tri = delaunay(x,y); % Create a 2-D triangular mesh
figure
trimesh(tri,x,y,z); % Plot the mesh in 3-D
figure
triplot(tri,x,y);
figure
trisurf(tri,x,y,z); % Plot the surface in 3-D
shading interp
9 Comments
steamrice
on 10 Mar 2020
KSSV
on 10 Mar 2020
Didn't the given code work?
steamrice
on 11 Mar 2020
Walter Roberson
on 11 Mar 2020
Edited: Walter Roberson
on 11 Mar 2020
for i = 1:3:1000-2
a = test(:,i);
b = test(:,i+1);
c = test(:,i+2);
scatter3(a,b,c, '*');
hold on
end
However, this could also be
a = test(:,1:3:1000-2);
b = test(:,2:3:1000-1);
c = test(:,3:3:1000);
scatter3(a(:), b(:), c(:), '*');
or
temp = reshape(test(:,1:999).', 3, :);
scatter3(temp(1,:), temp(2,:), temp(3,:), '*');
steamrice
on 11 Mar 2020
steamrice
on 11 Mar 2020
Walter Roberson
on 11 Mar 2020
Oh, wait, you said 1000 points each, not 1000 columns total. Using the shortest form, then:
temp = reshape(test.', 3, :);
scatter3(temp(1,:), temp(2,:), temp(3,:), '*');
steamrice
on 11 Mar 2020
steamrice
on 11 Mar 2020
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!