2013-04-09 121 views
1

移動我已經使用由@Amro在其他問題提供的代碼的速度:更改點沿的曲線圖在MATLAB

%# control animation speed 
DELAY = 0.01; 
numPoints = 600; 

%# create data 
x = linspace(0,10,numPoints); 
y = log(x); 

%# plot graph 
figure('DoubleBuffer','on')     %# no flickering 
plot(x,y, 'LineWidth',2), grid on 
xlabel('x'), ylabel('y'), title('y = log(x)') 

%# create moving point + coords text 
hLine = line('XData',x(1), 'YData',y(1), 'Color','r', ... 
    'Marker','o', 'MarkerSize',6, 'LineWidth',2); 
hTxt = text(x(1), y(1), sprintf('(%.3f,%.3f)',x(1),y(1)), ... 
    'Color',[0.2 0.2 0.2], 'FontSize',8, ... 
    'HorizontalAlignment','left', 'VerticalAlignment','top'); 

%# infinite loop 
i = 1;          %# index 
while true  
    %# update point & text 
    set(hLine, 'XData',x(i), 'YData',y(i)) 
    set(hTxt, 'Position',[x(i) y(i)], ... 
     'String',sprintf('(%.3f,%.3f)',[x(i) y(i)]))   
    drawnow         %# force refresh 
    %#pause(DELAY)       %# slow down animation 

    i = rem(i+1,numPoints)+1;    %# circular increment 
    if ~ishandle(hLine), break; end   %# in case you close the figure 
end 

但我需要更改標記的速度。我試過改變DELAY的值,但它沒有奏效。關鍵是我不能改變numPoints(函數的大小),所以我不知道這麼做。 任何想法?

謝謝!

回答

1

只取消註釋無限循環中的暫停(DELAY)。將DELAY更改爲合適的值