2013-03-08 119 views
0

首先,我想感謝所有參與貢獻的人。Matlab中的線條動畫

我想要一條線,在它的末端有一個標記,從原點到軌跡上的XYZ值。我的軌跡包含2000個XYZ值並以半圓形移動。但是,我似乎無法獲得上一行的清除。換句話說,Matlab在每個XYZ值處繪製線。請檢查我的代碼並告訴我我做錯了什麼。

figure(1); 
grid on; 
xlim([-2.5,2.5]); 
xlabel('X Axis'); 
ylim([-2.5,2.5]); 
ylabel('Y Axis'); 
zlim([-2.5,2.5]); 
zlabel('Z Axis'); 

set(gcf,'Renderer','OpenGL'); 
h = plot(x(1),y(1),z(1),0,'o','MarkerSize',10,'MarkerFaceColor','b'); 
set(h,'EraseMode','normal'); 

i = 1; 

while i <= length(x) 
    set(h,'XData',x(i)); 
    set(h,'YData',y(i)); 
    set(h,'ZData',z(i)); 
    line([0 x(i)],[0 y(i)],[0 z(i)],'LineWidth',2,'EraseMode','normal'); 
    drawnow; 
    i = i + 1; 
end 

回答

0

你不刪除舊的。

使用類似:

delete(l) % if it exists 
l = line([0 x(i)],[0 y(i)],[0 .... 
+0

謝謝,這個作品完美 – 2013-03-09 07:06:03

0

您正在尋找的是在繪製下一個迭代之前清除該圖的內容。因此,請在開始時在while循環中嘗試使用clf

下面是文檔:clf reference - Mathworks

+0

我不斷收到錯誤「錯誤使用handle.handle /套 無效或刪除的對象。」 – 2013-03-09 07:04:46