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

3 vues (au cours des 30 derniers jours)
Lucas Carvalho
Lucas Carvalho le 20 Mar 2015
Commenté : Lucas Carvalho le 20 Mar 2015
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!

Réponse acceptée

Konstantinos Sofos
Konstantinos Sofos le 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 commentaire
Lucas Carvalho
Lucas Carvalho le 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

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by