如何用matlab画一个动态图?

如题所述

1、首先,这里举例代码如下:

x=-8:0.5:8;

[XX,YY]=meshgrid(x);

r=sqrt(XX.^2+YY.^2)+eps;

Z=sin(r)./r;

surf(Z);

生成了一幅静态的surf图片,XX,YY由meshgrid生成。

2、下面输入theAxes=axis;,

右侧可以看到,theAxes=[0,40,0,40,-0.5,1],这是surf函数生成的,因为上面绘制的surf没有使用surf(XX,YY,Z)所以坐标范围不同,但是无论什么坐标范围,这里都先取出来,存到一个变量中,后面备用。

3、mat=moviein(20);将fmat保存为一个moviein结构体,20表示动画有20帧。

4、输入:

for j=1:20;

surf(sin(2*pi*j/20)*Z,Z)

axis(theAxes)

fmat(:,j)=getframe;

end

这里就是分别画每一帧的图像,此处我们的surf是分20份来画,坐标轴统一为之前的保存的坐标轴,把moviein结构体fmat的取为getframe,如图。

5、movie(fmat,10);就是动画放10遍。

6、全代码如下:

x=-8:0.5:8;

[XX,YY]=meshgrid(x);

r=sqrt(XX.^2+YY.^2)+eps;

Z=sin(r)./r;

surf(Z);

theAxes=axis;

fmat=moviein(20);

for j=1:20;

surf(sin(2*pi*j/20)*Z,Z)

axis(theAxes)

fmat(:,j)=getframe;

end

movie(fmat,10)

完成效果图。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-26

1、首先打开matlab,导入日期数据:从1号到30号,>> date=1:30。

2、导入温度数据:从1号到30号每天的平均温度。>>temperature=[12 13 14 11 18 20 21 13 17 18 19 10 11 13 14 13 12 22 21 23 19 22 21 12 13 15 17 15 16 22]。

3、然后采用折线形式画出天气图。>> plot(date,temperature )>> axis([0,31,0,30])>> xlabel('date'),ylabel('temperature')。

4、采用梯形线形式画出天气图。>> stairs(date,temperature )。

5、最后采用直方图形式画出天气图。>> bar(date,temperature )。

本回答被网友采纳
第2个回答  推荐于2017-09-15
No.1
给你一个示例吧~~~用for循环做的
%动态绘制椭圆
clf;axis([-2,2,-2,2]);
axis equal;
pause(1);
h=line(NaN,NaN,'marker','o','linesty','-','erasemode','none');
t=6*pi*(0:0.02:1);
for n=1:length(t)
set(h,'xdata',2*cos(t(1:n)),'ydata',sin(t(1:n)));
pause(0.05);%暂停0.05秒
end

No.2
貌似函数comet,comet3可以实现质点动画
%comet(xdata,ydata,p) p为彗星尾巴长度,可为常数
%平抛运动
vx=40;
t=linspace(0,10,1000);
x=vx*t;
y=-9.8*t.^2/2;
comet(x,y)

No.3最强大的也就是动画制作了,这个有点难,需要用到函数movie
相关链接http://blog.sina.com.cn/s/blog_61c0518f0100erw8.html本回答被提问者采纳
第3个回答  推荐于2017-09-29
用for循环做的例子如下:
%动态绘制椭圆
clf;axis([-2,2,-2,2]);
axis equal;
pause(1);
h=line(NaN,NaN,'marker','o','linesty','-','erasemode','none');
t=6*pi*(0:0.02:1);
for n=1:length(t)
set(h,'xdata',2*cos(t(1:n)),'ydata',sin(t(1:n)));
pause(0.05);%暂停0.05秒
end
No.2
貌似函数comet,comet3可以实现质点动画
%comet(xdata,ydata,p) p为彗星尾巴长度,可为常数
%平抛运动
vx=40;
t=linspace(0,10,1000);
x=vx*t;
y=-9.8*t.^2/2;
comet(x,y)
第4个回答  2010-09-08
在程序后面加一个 pause(time) 就可以啦,time是你自己设定的时间

matlab如何做出动态图
1当我们调用plot()函数时MATLAB会自动生成一个命名为Figure1的窗体,我们想修改它的名字。如下图 2在命令行中输入如下代码 figure('NumberTitle', 'off', 'Name', '晓博基于BP神经网络的xor测试程序');运行代码,结果如下图 3对于窗体中的坐标线和说明文字显示我们加入如下代码 hold on %刷新窗...

如何用matlab画一个动态图?
1、首先,这里举例代码如下:x=-8:0.5:8;[XX,YY]=meshgrid(x);r=sqrt(XX.^2+YY.^2)+eps;Z=sin(r).\/r;surf(Z);生成了一幅静态的surf图片,XX,YY由meshgrid生成。2、下面输入theAxes=axis;,右侧可以看到,theAxes=[0,40,0,40,-0.5,1],这是surf函数生成的,因为上面绘制的surf...

Matlab制作简单的爱心表白动图
在爱心内部添加文本,使用Matlab的text函数,实现动图内文字展示。此外,我们可以通过调整视角和光线效果,让爱心动图更加生动。通过view函数改变视角,生成动态图,如下所示。将爱心置于三维空间,通过调整颜色和透明度,实现立体效果。以下是生成立体爱心的代码:总结上述步骤,使用Matlab绘制爱心并制作动图,不...

matlab如何做出动态图?
A = zeros(length(T), length(zeta));for i = 1 : length(zeta)sys = tf(1, [1 2*zeta(i) 1]);A(:, i) = step(sys, T);end T变化时,A的行向量变化动态图 h = plot(A(1, :));set(gcf,'DoubleBuffer','on');axis([1 size(A,2) min(A(:)) max(A(:))]);for...

怎么在matlab上画出一个圈在平行于坐标轴的直线上的运动动态图啊
利用matlab上画出点的运动动态图,可以在循环语句中增加捕获坐标区或图窗作为影片帧函数getframe,再使用movie 函数播放。

如何MATLAB画柱坐标系的三维动态图
转换成直角坐标再画图。x = r .* cos(phi);y = r .* sin(phi);scatter3(x,y,z); %画3维散点图

MATLAB绘制圆变形动态图
function h=circle(r,x0,y0,C,Nb)CIRCLE adds circles to the current plot r 圆之半径,可为列矩阵,代表可同时绘制许多同心或同性质的圆。-x0,y0 圆心之座标,可为矩阵,代表可同时绘制许多不同圆心位置之圆。-C 圆之颜色,不说明时,由指令依序指定,亦可作向量指定。-Nb 绘圆时所用之...

MATLAB 画一个矩形随轨迹运动的动态图,并保留之前每个时刻的矩形框痕...
clear all close all x1=0:0.1:2;y2=1.5:-0.1:0;x3=2:-0.1:0;y4=0:0.1:1.5;y1=1.5*ones(1,length(x1));x2=2*ones(1,length(y2));y3=zeros(1,length(x3));x4=zeros(1,length(y4));traj_x = -10:0.5:10;traj_y = traj_x.^2;x=zeros(length(traj_x),...

matlab能否实现当函数参数连续变化时实时绘图
说明:程序首先画出y随a变化而变化的动态图。然后请你在command window里面输入任意a值,然后回车。clc;clear all;close all;maxa=30;a=0.1:0.1:maxa;max=length(a);x=-5:0.1:5;figure;for i=1:max drawnow ;y=a(i).*x.^2;subplot(2,1,1);hold on;grid on;bar(a(i),11);t...

怎样用MATLAB求极限函数并实现其动态化
1.limit命令直接求极限,相应的MATLAB代码为:>>clear; >>syms x; %说明x为符号变量>>limit((tan(3x)\/asin(2x)),x,0)

相似回答