在Matlab中实现曲面绘制动画
我有一个矩阵,表示一个10x10的正方形网格随时间的高度。高度在行和列上的for循环中更新。我的尝试是简单地把冲浪(高度)放在这个循环中,在两个图之间有0.1秒的停顿,因为这是我用二维图做的。我如何才能做到这一点?我认为最好的方法是直接从曲面图中更新数据 要执行此操作,请在创建过程中为其指定句柄(例如命名为在Matlab中实现曲面绘制动画,matlab,plot,jquery-animate,Matlab,Plot,Jquery Animate,我有一个矩阵,表示一个10x10的正方形网格随时间的高度。高度在行和列上的for循环中更新。我的尝试是简单地把冲浪(高度)放在这个循环中,在两个图之间有0.1秒的停顿,因为这是我用二维图做的。我如何才能做到这一点?我认为最好的方法是直接从曲面图中更新数据 要执行此操作,请在创建过程中为其指定句柄(例如命名为hSurf),然后使用更新ZData属性,例如 set(hSurf,'ZData',SomeValues) 示例代码: clear clc close all figure(1) %//
hSurf
),然后使用更新ZData
属性,例如
set(hSurf,'ZData',SomeValues)
示例代码:
clear
clc
close all
figure(1)
%// Generate data
Z = peaks(25);
%// Create handles to access/modify data.
hSurf = surf(Z);
k = 0;
%// Set up name to create animated gif.
filename = 'AnimateSurf.gif';
%// Just a loop
while k < 10
%// IMPORTANT part. Update the Z data
set(hSurf,'ZData',k*Z);
%// Set limits so the graph looks nice.
zlim([-80 80])
drawnow
%// Capture frame to write to gif.
frame = getframe(1);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if k == 0;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,filename,'gif','WriteMode','append');
end
pause(.15)
k = k+1;
end
清除
clc
全部关闭
图(1)
%//生成数据
Z=峰值(25);
%//创建句柄以访问/修改数据。
hSurf=surf(Z);
k=0;
%//设置名称以创建动画gif。
文件名='AnimateSurf.gif';
%//只是一个循环
而k<10
%//重要部分。更新Z数据
集合(hSurf,'ZData',k*Z);
%//设置限制,使图形看起来漂亮。
兹利姆([-80])
刷新屏幕
%//捕获要写入gif的帧。
frame=getframe(1);
im=帧2im(帧);
[imind,cm]=rgb2ind(im,256);
如果k==0;
imwrite(imind,cm,文件名,'gif','Loopcount',inf);
其他的
imwrite(imind,cm,filename,'gif','WriteMode','append');
结束
暂停(.15)
k=k+1;
结束
和输出:
@julesjanker那么我的答案对你有帮助吗?@julesjanker:如果答案对你有用的话。