Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中实现曲面绘制动画_Matlab_Plot_Jquery Animate - Fatal编程技术网

在Matlab中实现曲面绘制动画

在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) %//

我有一个矩阵,表示一个10x10的正方形网格随时间的高度。高度在行和列上的for循环中更新。我的尝试是简单地把冲浪(高度)放在这个循环中,在两个图之间有0.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:如果答案对你有用的话。