Plot in 3D over Time
Mostrar comentarios más antiguos
Hi,
I need to make a 3D plot that change over time. I have 4 points which doesn't move in x and y, but z is moving through time. For exemple A(1,1,zA) B(1,2,zB) C(2,1,zC) and D(2,2,zD) and I have lots of values for zA, zB, zC, zD over time.
Who can I plot this in Matlab ?
Thank you for your answers.
Nicolas Harfaut
Respuestas (3)
Star Strider
el 14 de Sept. de 2016
You can probably adapt this code to do what you want:
[X,Y] = meshgrid(linspace(-5, 5, 50));
fcn = @(x,y,k) k*x.^2 + y.^2;
v = [1:-0.05:-1; -1:0.05:1];
for k1 = 1:2
for k2 = v(k1,:)
surfc(X, Y, fcn(X,Y,k2))
axis([-5 5 -5 5 -30 50])
drawnow
pause(0.1)
end
end
8 comentarios
Nicolas harfaut
el 15 de Sept. de 2016
Star Strider
el 15 de Sept. de 2016
My ‘fcn’ function just calculates the z-data for the corresponding x- and y-grid points. Plotting data you have already acquired from a file should not be much different.
You can upload all or part of the file here using the ‘paperclip’ icon. It’s easier to write specific code with some — and preferably all (if there’s not too much) — of the actual data than to try to guess the content.
Nicolas harfaut
el 19 de Sept. de 2016
Star Strider
el 19 de Sept. de 2016
My pleasure.
I don’t see any attached files. I will download your file and work with your data when I have them. Please see Add Attachments, Images, and Links for details.
Nicolas harfaut
el 5 de Oct. de 2016
Star Strider
el 8 de Oct. de 2016
I’m not quite sure what you want.
Here are some possibilities with in the same loop, one (commented-out) is a straightforward plot, the other is a quiver3 version. The other plot is for my information.
It is of course not possible to plot in four dimensions (in this universe, at least) so this is my best effort:
[d,s,r] = xlsread('Nicolas harfaut Test 1.xls');
d_rng = [min(d(:,1:5)); max(d(:,1:5))];
figure(1)
plot(d(:,1), d(:,2))
hold on
for k1 = 3:5
plot(d(:,1), d(:,k1))
end
grid
legend('Az', 'Bz', 'Cz', 'Dz')
figure(2)
for k1 = 2:size(d,1)
quiver3(d(k1,2), d(k1,3),d(k1,4), mean(d(k1-1:k1,2)), mean(d(k1-1:k1,3)), mean(d(k1-1:k1,4)), 0, 'LineWidth',2)
% plot3(d(k1-1:k1,2), d(k1-1:k1,3), d(k1-1:k1,4), '-b.')
% axis([-10 15 -10 15 -10 15])
axis([-15 115 -15 115 -15 115])
grid on
drawnow
% refreshdata
end
Nicolas harfaut
el 10 de Oct. de 2016
Star Strider
el 10 de Oct. de 2016
My pleasure.
If my Answer solved your problem, please Accept it.
KSSV
el 14 de Sept. de 2016
clc; clear all ;
x = rand(4,1) ;
y = rand(4,1) ;
for i = 1:100
z = rand(4,1) ;
plot3(x,y,z) ;
drawnow
pause(0.2)
end
Nicolas harfaut
el 15 de Sept. de 2016
0 votos
Categorías
Más información sobre Graphics Performance en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!