如何用matlab画一个动态图?

 我来答
xiawei123
高粉答主

2019-10-14 · 每个回答都超有意思的
知道答主
回答量:1626
采纳率:100%
帮助的人:44万
展开全部

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)

完成效果图。

旅游路上小知识
高粉答主

2020-04-26 · 我是旅行小达人,专注解决旅行中遇到的问题
旅游路上小知识
采纳数:2 获赞数:83086

向TA提问 私信TA
展开全部

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 )。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Carrot_hy
推荐于2017-09-15 · TA获得超过1836个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:224万
展开全部
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
day忘不掉的痛
推荐于2017-09-29 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223930
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
用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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lansezhibin
2010-09-08 · TA获得超过136个赞
知道答主
回答量:89
采纳率:0%
帮助的人:40.9万
展开全部
在程序后面加一个 pause(time) 就可以啦,time是你自己设定的时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式