加载中…
个人资料
shuang
shuang
  • 博客等级:
  • 博客积分:0
  • 博客访问:10,922
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

绘制动态曲线

(2014-01-14 22:26:40)
标签:

matlab

函数

动态

曲线

文化

分类: Matlab自定义函数

1.       函数功能

绘制动态曲线,可用于数据回放。

 

2.       实现方法

使用set函数动态改变当前点的坐标,使用line函数绘制历史曲线,实现曲线的动态变化效果。

 

3.       程序源代码

function movieXY(X,Y,dt)

% movieXY(X,Y,dt) 动画曲线,可用于数据回放

% X 曲线横坐标,n维列向量

% Y 曲线纵坐标,可为n维列向量或n*k矩阵(k条曲线)

% dt 两相邻数据点之间的时间间隔,单位为秒

%    dt影响数据回放的快慢,默认值为0.05s

% By ZFS@wust 2011

%    ZFS 2014.01.12 整理

 

% 给出时间间隔的默认值

if nargin == 2

    dt = 0.05;

end

n = length(X);

h = plot(X(1),Y(1,:),'o');

X_1 = X(1);

Y_1 = Y(1,:);

hold on

dX = 0.01*( max(X) - min(X) );

Ymax = max( Y(:) );

Ymin = min( Y(:) );

dY = 0.01*( Ymax-Ymin );

axis([min(X)-dX max(X)+dX Ymin-dY Ymax+dY]);

for ii=2:n

    for jj = 1:length(h)

       set( h(jj),'xdata',X(ii),'ydata',Y(ii,jj) );

    end

    line([X_1 X(ii)],[Y_1;Y(ii,:)]);

    drawnow

    X_1 = X(ii);

    Y_1 = Y(ii,:);

    pause(dt);

end

 

4.       测试程序

 测试1:绘制圆

 T = linspace(0,2*pi,100)';

  X = cos(T);

  Y = sin(T);

  movieXY(X,Y);

 

绘制动态曲线



测试2:绘制正弦曲线(共三条)

  X = linspace(0,3,200)';

  Y = [sin(2*pi*X) cos(2*pi*X) sin(2*pi*X)+cos(2*pi*X) ];

  dt = 0.02;

  movieXY(X,Y,dt);

 

 

绘制动态曲线



博文为原创,欢迎转载,转载注明出处,谢谢!

Matlab/Simulink方面的技术问题,欢迎发送邮件至944077462@qq.com讨论。

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有