matlab如何做出动态图?

作者&投稿:钟容 (若有异议请与网页底部的电邮联系)
如何用matlab画一个动态图?~

代码如下:动态绘制椭圆
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
matlab的作用:
是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
使用 MATLAB,可以使用传统的编程语言(如 C、C 和 Fortran)更快地解决技术计算问题。
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)
完成效果图。

由于没有你的数据,这里前面的部分代码使用二阶系统阶跃响应生成测试数据T和A,你需要的代码是后面的那部分。

% 生成测试数据
zeta = 0 : 0.1 : 2;
T = (0 : 0.1 : 10).';
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 i = 1 : length(T)
set(h, 'YData', A(i, :));
title(['T = ' num2str(T(i), '%.1f')]);
drawnow
end

你需要将它保存为movie的格式吗?如果需要的话,需要用Movie(M),例子
clear all
clc
clear all
clc
x=0:pi/50:2*pi;
y=sin(x);
plot(x,y)
h=line(0,0,'color','r','marker','.','markersize',40);
axesValue=axis;
A(1:length(x))=struct('cdata',[],'colormap',[]);
for jj=1:length(x)
set(h,'xdata',x(jj),'ydata',y(jj));
axis(axesValue);
drawnow
A(jj)=getframe;
end
movie2avi(A,'ex_movie2avi','compression','none')

或者可以制作gif格式的动画:
x=0:pi/50:2*pi;
y=sin(x);
plot(x,y)
h=line(0,0,'color','r','marker','.','markersize',40);
axesValue=axis;
A(1:length(x))=struct('cdata',[],'colormap',[]);
for jj=1:length(x)
set(h,'xdata',x(jj),'ydata',y(jj));
axis(axesValue);
drawnow
f=getframe;
f=frame2im(f);
[X,map]=rgb2ind(f,256);
if mod(jj,10)==1
if jj==1
imwrite(X,map,'ex_imwrite.gif');
else
imwrite(X,map,'ex_imwrite.gif','WriteMode','Append');
end
end
end

每画好一个图后drawnow一下(或者pause一下指定的时间),再画下一个图,用for循环画。
下面只是一个小例子,你自己依葫芦画瓢即可
n=-2:0.01:2;
x=linspace(-pi,pi);
for k=n
plot(x,sin(k*x));
drawnow;
end


matlab怎么做出图表
1.我们需要对matlab有一个初步的了解后,才可能完成后续的步骤,例子如下:2.现在我们需要把图形隐藏起来,也就是不主动弹出图形窗口,这一步需要我们了解相关的函数句柄的知识,具体看图:3.在上一步中,函数图形的可见性(visible)已经关闭(off),也就是被隐藏起来了,接着我们得把plot函数做出的图...

怎么用Matlab做出下面这种函数图像
参考代码:(可复制粘贴)PX=[-3 5 11]; %给出三个点的坐标 PY=[6 2 8]; %给出三个点的坐标 k = polyfit(PX,PY,2) %用多项式曲线拟合函数的系数k,2表示多项式次数(即二次函数)x=[-5:0.1:13]; %作函数曲线,从-5到13,间隔0.1(间隔越小精度越高)fx=polyval(k,x...

如何利用matlab绘制脉冲响应图
eviews脉冲响应图怎么分析1、先做前期的单位根等检验,然后view里面找到脉冲响应分析以及方差分解分析。Eviews脉冲响应含义是,冲击对某个变量在不同时期的影响效果,长期趋于稳定表明冲击效应基本不变化了。2、如果图形是单峰的,代表系统具有简单的共振频率;如果是双峰的,代表系统中存在两种不同的共振频率...

如何在MATLAB中做出标签页的效果
如何在MATLAB中做出标签页的效果 使用方法如下:1.首先建立一个figure,并在其中加入一个static Text控件,命名为texttag,需要注意的是这个text控件所在的位置就是将来标签页所在的位置 2.然后将附件中的tabpanel2.8中的四个文件tabpanel.m,tabpanel.p,tabselectionfcn.m,tabselectionfcn.p放到figure...

如何用matlab做出多个函数的图形
如果是在同一个窗口的话,可以这样实现。比如,你要作6个图像,那么你可以每行输出2个图像,那么就有3行,做第一个图前,添加语句subplot(3,2,1)表示在三行两列的图阵的第一个位置作图,然就是用plot(x,y)作图第一个图;类似地,做第二个图时先使用subplot(3,2,2),然后在使用作图语句来...

MATLAB建模 中怎样输入字母阿尔法
1、首先在电脑中鼠标右击,打开电脑桌面上matlab程序,如下图所示。2、可以直接在命令行窗口输入以下的程序:a=rand(1,10);b=rand(5,5);subplot(1,2,1),plot(a),必须是英文输入状态下。3、还可以新建脚本,点击matlab程序左上角新建脚本命令。4、在编辑器中输入代码程序:a=rand(1,10);b=...

Matlab做二维等值线图
这里给大家一个,如何使用matlab做出等值线图。首先需要三维点位,我们假设有XYZ三维数据一组,下面给出部分数据。然后将数据拖入到matlab中,在workspace中生成一个n×3的数组。然后可以先看看数据XY的情况,由于是一系列的点,这里我们使用点来表示 plot(bb(:,1),bb(:,2),'b.'); 这里用做例子,...

matlab怎么画出4维函数图形
1、打开matlab ,点击左上角的新建脚本文件 2、构造x,y,z,f(x,y,z)这4个矩阵,也可以直接用sphere命令来构建x,y,z。3、用以下命令就可以得到结果,figure中有很多选项可以自定义,surf绘图之后,用shading interp;light;lighting gouraud 4、使用上述命令得到了如下所示的图形,使用surf可以绘制...

如何用MATLAB做出地震正演模型
1.在matlab的命令窗口里输入Simulink,回车,打开Simulink的功能模块函数库窗口。 2.在功能模块函数库窗口,选择菜单File-New-Model,就可以打开一个空白设计区域。 3.在功能模块函数库窗口中双击“Sources”打开一个子函数库,用鼠标把“Sine wave...

请问如何用matlab做出以下函数的曲线
可以直接使用隐函数作图函数:ezplot(),例如在-1≤x≤1,-5≤y≤5区间内的图形为:ezplot('x\/y=1\/(1-y)-y\/(1+y-y^2)',[-1,1,-5,5])grid on

安西县17718627374: Matlab如何画动态图 -
方苗丽珠: 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)...

安西县17718627374: 用matlab制作动态图 -
方苗丽珠: 有一个例子 t = 0:pi/100:2*pi; y = exp(sin(t)); h = plot(t,y,'YDataSource','y'); for k = 1:0.01:10y = exp(sin(t.*k));refreshdata(h,'caller')drawnow end

安西县17718627374: matlab动态图像
方苗丽珠: 一般是把你要变化的参数设为变量,通过不停地绘图和刷新屏幕来实现.对于老版本的MATLAB可能会出现屏闪的现象

安西县17718627374: 如何利用matlab做gif格式的动画 -
方苗丽珠: 能啊,用这句代码: [filename,pathname] = uiputfile({'*.jpg';'*.gif';'*.bmp';'*.tif';'*.png';},'图片保存为');

安西县17718627374: 怎样用Matlab做动画演示 -
方苗丽珠: 1利用moviein命令对内存进行初始化,创建一个最够大的矩阵,使其能够容纳基于当前坐标轴大小的一系列制定的图形(帧);moviein(n)可以创建一个足够大的n列矩阵.2利用getframe命令生成每个帧.3利用movie命令按照指定的速度和...

安西县17718627374: matlab如何把两个图弄成动画 -
方苗丽珠: clc; clear all; close all; It = imread('ab1.jpg'); centr = round(size(It, 1)/2)-30; centc = round(size(It, 2)/2)+60; figure; for i = 1 : 6 str = sprintf('tu1\\0%d.jpg', i); I0 = imread(str); flag = 0; while flagIt = imread('ab1.jpg'); I = imresize(I0, [size(I0,1)+10*flag size(I...

安西县17718627374: 如何用MATLAB生成gif动态图?
方苗丽珠: doc imwrite

安西县17718627374: 求助:如何用matlab做gif动画 -
方苗丽珠: 恩,我一般都是保存成一张张的JPG,然后在PS里面转成gif的不过100张,恩,用photoshop的话会很慢,当然工作站除外

安西县17718627374: 怎样用matlab编写桌子的动态变化图 -
方苗丽珠: L=120; %长 D=50; %宽,圆桌面直径 d=2.5; %木板宽 hL=L/2; %半长 R=D/2; %圆桌面半径 y=-R+d/2:d:R-d/2; %长条宽度方向中心位置 x=sqrt(R^2-y.^2); %长条中心在圆上的位置 H=hL-x(1); %最长腿长度,也就是最大桌子高度 Tx=[x -...

安西县17718627374: 如何使用matlab取得动态曲线 -
方苗丽珠: 使用数学函数可以获得吧!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网