fsnow 发表于 2007-12-6 17:57

关于Data Source属性的问题

通过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();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

fsnow 发表于 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();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]
查看完整版本: 关于Data Source属性的问题