Plot in 3D over Time
Ältere Kommentare anzeigen
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
Antworten (3)
Star Strider
am 14 Sep. 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 Kommentare
Nicolas harfaut
am 15 Sep. 2016
Star Strider
am 15 Sep. 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
am 19 Sep. 2016
Star Strider
am 19 Sep. 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
am 5 Okt. 2016
Star Strider
am 8 Okt. 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
am 10 Okt. 2016
Star Strider
am 10 Okt. 2016
My pleasure.
If my Answer solved your problem, please Accept it.
KSSV
am 14 Sep. 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
am 15 Sep. 2016
0 Stimmen
Kategorien
Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!