How to plot a 2d matrix on a 3d graph?

3 views (last 30 days)
Hi guys, I want to plot in 3d a matrix whose columns represent points in the space:
A = [x0 x1 x2 .... xn; y0 y1 y2 .... yn; z0 z1 z2 .... zn]
So the first point is [x0;y0;z0], the second one [x1;y1;z1], until the last n-th point. My intention is to create a trajectory between these points. I have already tried surf, mesh and other 3d plots, but none of them are doing it.
Thank you!

Accepted Answer

Konstantinos Sofos
Konstantinos Sofos on 20 Mar 2015
Hi,
So the problem is that you do not want to plot a matrix but the information contained in 3 vectors (which are the columns of a matrix) in 3D. Have you tried griddata?
As an example
X=rand(1,30);
Y=rand(1,30);
Z=rand(1,30);
[XI YI ZI] = griddata(X,Y,Z,linspace(0,1),linspace(0,1)');
surf(XI,YI,ZI)
Regards
  1 Comment
Lucas Carvalho
Lucas Carvalho on 20 Mar 2015
Thank you for the suggestion Konstantinos, but I've figured out another way. My example is below with the graph:
W = @(e,omega,t,a,b,c)[e*cos(omega*t) - sin(omega*t).*(a - b*t);
e*sin(omega*t) + cos(omega*t).*(a - b*t);
c+4*t];
e = 50;
omega = 10;
t = 1:0.01:10;
a = 20;
b = 5;
c = 2;
W_f = W(e,omega,t,a,b,c);
for i=1:(numel(W_f(1,:))-1)
p1 = W_f(:,i)';
p2 = W_f(:,i+1)';
pts = [p1;p2];
grid;
plot3(pts(:,1),pts(:,2),pts(:,3))
hold all
i=i+1;
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!