2011-10-21 71 views
2

我不知道爲什麼在這個例子中保持不起作用。堅持不與ezplot3合作

syms t1 t2 t3 
line1 = [0,0,0] + t1*[0,0,1]; 
line2 = [1,0,0] + t2*[0,0,1]; 
line3 = [0,1,0] + t3*[0,0,1]; 

hold on 
ezplot3(line1(1),line1(2),line1(3)) 
ezplot3(line2(1),line2(2),line2(3)) 
ezplot3(line3(1),line3(2),line3(3)) 
hold off 

任何線索?

回答

3

我發現了一個線索,這here

我們應該指出的是,這樣做,讓與ezmesh和ezplot3,有必要先來繪製線,然後飛機。 原因是ezplot3的代碼是以這樣一種方式編寫的,以便撤銷命令上任何先前發出的保留的效果。當然可以通過使用plot3而不是ezplot3來解決這個問題...

另請參見here。好像plot3是你的答案。

+1

那奇怪,因爲'ezplot3('罪( (t)','cos(t)','t',[0,6 * pi]),h = ezplot3('cos(t)','sin(t)','t' 0,6 *π); set(h,'Color','r')'運行良好。 –

+1

@Clement J.當上邊界相同時,保持ezplot3的作用,就像在你的例子中一樣。 – Ghaul

+0

@Ghaul:事實並非如此:'syms t; ezplot3(sin(t),cos(t),t,[0,6 * pi])保持不變,h = ezplot3(cos(t),sin(t),t,[0,6 * pi]) ;設置(h,'顏色','r')',看我的答案爲什麼.. – Amro

1

看一看該函數的源代碼理解爲什麼:

>> edit(fullfile(matlabroot,'toolbox','symbolic','symbolic','@sym','ezplot3.m')) 

的第一行是:clf這將刪除所有的圖形從目前的數字對象,包括軸載(HOLD功能基本上設置軸的'NextPlot'屬性)。嘗試評論該行...


注:代碼由@ClementJ給出的原因。在評論作品中是因爲它使用了不同的EZPLOT3函數。有象徵意義的物品,如您的示例中使用它的調用定時功能不是版本:

>> which -all ezplot3 
C:\Program Files\MATLAB\R2011b\toolbox\matlab\specgraph\ezplot3.m 
C:\Program Files\MATLAB\R2011b\toolbox\symbolic\symbolic\@sym\ezplot3.m % sym method 

其實象徵功能最終調用定期EZPLOT3最終..