声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 940|回复: 1

[绘图技巧] 关于Data Source属性的问题

[复制链接]
发表于 2007-12-6 17:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
通过Data Source属性和refreshdata 可以实现图形数据的更新,但是在使用时遇到一个问题,想请教一下。
YDataSource里的数据为double时无问题,但是使用复数画圆时,画图不正确。在help里找不到解答。
程序见下:
clear all
clc
t = 0:pi/20:2*pi;
y = exp(sin(t));
h1 = plot(t,y,'YDataSource','y');
for k = 1:.1:10
    y = exp(sin(t.*k));
    refreshdata(h1,'caller')
    drawnow; pause(.1)
end
% 画圆
t = linspace(0,pi*2,100);
z = 100+100*i+100*exp(i*t);
figure
h2 = plot(z,'YDataSource','z');
axis([0 200 0 200]);axis equal; axis tight;
for k = 0:.01:1
    z = 100+100*i+k*100*exp(i*t);
    refreshdata(h2,'caller')
    drawnow; pause(.1)
end
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-12-9 15:46 | 显示全部楼层
没有人能解释一下吗?看来只好老老实实的改用x,y坐标画圆了。
% 画圆
t = linspace(0,pi*2,100);
x = 100+100*cos(t);
y = 100+100*sin(t);
figure
h2 = plot(x,y,'XDataSource','x','YDataSource','y');
axis([0 200 0 200]);axis equal; axis tight;
for k = 0:.01:1
    x = 100+k*100*cos(t);
    y = 100+k*100*sin(t);
    refreshdata(h2,'caller')
    drawnow; pause(.1)
end

以上在matlab R2006a中实现

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 19:18 , Processed in 0.058687 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表