Plot in 3D over Time
Mostra commenti meno recenti
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
Risposte (3)
Star Strider
il 14 Set 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 Commenti
Nicolas harfaut
il 15 Set 2016
Star Strider
il 15 Set 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
il 19 Set 2016
Star Strider
il 19 Set 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
il 5 Ott 2016
Star Strider
il 8 Ott 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
il 10 Ott 2016
Star Strider
il 10 Ott 2016
My pleasure.
If my Answer solved your problem, please Accept it.
KSSV
il 14 Set 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
il 15 Set 2016
0 voti
Categorie
Scopri di più su Graphics Performance in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!