How to update a 3D surface plot?
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a 3D cascade plot. It has Amplitude Vs Frequency data on X and Y axis. It has amplitude on Z axis. I want to create an animation where the evolution of data on X Y axis is updated slowly in the Z direction as the time progresses.
2 comentarios
Respuestas (2)
Star Strider
el 13 de Jun. de 2016
See if modifying this code snippet with your surf call and data does what you want:
[X,Y] = meshgrid(linspace(-5, 5, 50)); % Create Mesh Data
fcn = @(x,y,k) k*x.^2 + y.^2; % Function To Plot (Vary Sign Of ‘x’)
v = [1:-0.05:-1; -1:0.05:1]; % Multiplier For ‘x’
for k1 = 1:2 % One Cycle For ‘Up’, One FOr ‘Down’
for k2 = v(k1,:) % Select A Direction From ‘v’
surfc(X, Y, fcn(X,Y,k2)) % Draw Surface
axis([-5 5 -5 5 -30 50]) % Set ‘axis’ For All Plots
drawnow % Draw Plot
pause(0.1) % Create Evenly-Timed Steps For Animation
end
end
You will have to experiment with it to get the result you want.
0 comentarios
KSSV
el 13 de Jun. de 2016
h.fig = figure ;
h.ax = handle(axes) ; %// create an empty axes that fills the figure
h.surf = handle( surf( NaN(2) ) ) ; %// create an empty "surface" object
%Display the initial surface
set( h.surf , 'XData',X , 'YData',Y , 'ZData',Z )
for i = 1:n
% update surface, load the data
h.surf.ZData = Z ;
end
4 comentarios
Walter Roberson
el 13 de Jun. de 2016
for i = 1:n
Z = ... new data
set(h, 'ZData', Z);
drawnow()
end
Ver también
Categorías
Más información sobre Animation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!