1
A
回答
5
這個答案几乎適用於任何可以在MATLAB中被表述爲隱式曲面/曲線的問題。我將在橢圓上演示它。
短版本:
A = [5 4; 4 5]
c = [1; 2]
elFunc = @(A11,A22,A12,A21,c1,c2,x,y) (c1-x).*(A11*(c1-x)+A21*(c2-y))+(c2-y).*(A12*(c1-x)+A22*(c2-y))-1
ezplot(@(x,y) elFunc(A(1,1),A(2,2),A(1,2),A(2,1),c(1),c(2),x,y), [0 2 0 4])
長的版本:
的橢圓形,可以在其最一般的形式含蓄地寫(任何尺寸)爲
(x-c)'A(x-c) = 1 or (x-c)'A(x-c)-1 = 0
哪裏x,c在R^n中,A是一個n×n矩陣。
爲了將這個轉換成MATLAB可以使用的形式,我們可以使用符號工具箱。 對於2D橢圓我們寫:
syms A11 A12 A21 A22 c1 c2 x y real
impl = ([x y]-[c1 c2])*[A11 A12; A21 A22]*([x;y]-[c1;c2])-1
這將產生以下的輸出:
(c1 - x)*(A11*(c1 - x) + A21*(c2 - y)) + (c2 - y)*(A12*(c1 - x) + A22*(c2 - y)) - 1
我們不需要符號工具箱了,所以我們剛纔複製的字符串,通過增加點操作版本矢量化它並將其變成函數
elFunc = @(A11,A22,A12,A21,c1,c2,x,y) (c1-x).*(A11*(c1-x)+A21*(c2-y))+(c2-y).*(A12*(c1-x)+A22*(c2-y))-1
現在我們可以使用ezplot繪製我們的曲線。 ezplot假設當你給它一個函數句柄時,它需要爲func = 0求解,所以我們的曲線已經以隱式格式被elFunc描述了。 我們所要做的就是定義我們想要ezplot嘗試繪製曲線的域。下面的示例演示結果:
A = [5 4; 4 5]
c = [1; 2]
elFunc = @(A11,A22,A12,A21,c1,c2,x,y) (c1-x).*(A11*(c1-x)+A21*(c2-y))+(c2-y).*(A12*(c1-x)+A22*(c2-y))-1
ezplot(@(x,y) elFunc(A(1,1),A(2,2),A(1,2),A(2,1),c(1),c(2),x,y), [0 2 0 4])
4
這個答案是完全一樣@ twerdster的答案,只是表示法是一個比較Matlabby:
A = [5 4; 4 5];
c = [1 2];
elFunc = @(x,y) sum(([x(:)-c(1) y(:)-c(2)] * A) .* [x(:)-c(1) y(:)-c(2)], 2) - 1;
ezplot(elFunc, [0 2 0 4])
作爲最後一句話:因爲我們的答案已經表明,ezplot
適用於易於繪圖的東西。對於匿名函數而言,橢圓已經處於「簡單」的邊緣,並且已經足夠了,並且ezplot
。
一般來說,我建議你避免使用ezplot
來做比ezplot(@(x)sin(x).*cos(2*x))
更難的東西。在function
s和plot()
,surf()
以及朋友中練習和流利得多。
相關問題
- 1. 在matlab中繪製曲面
- 2. 如何在Matlab中繪製曲線
- 3. 使用ezplot繪製包含常量的曲線
- 4. Matlab的如何繪製曲線上
- 5. 在Matlab中繪製雙曲線
- 6. 如何在MATLAB中使用手柄繪製幾條曲線
- 7. 如何使用matlab繪製有限域上的橢圓曲線
- 8. 如何使用三個矢量在matlab中繪製曲面?
- 9. 如何高效地在JavaScript中繪製多條交互曲線?
- 10. 如何在MATLAB中繪製沒有黑邊的曲面圖?
- 11. 繪製法線到曲面
- 12. 繪製曲線
- 13. 使用libgdx繪製曲線
- 14. 使用Paraview繪製曲線
- 15. 使用matlab中的有序數據集繪製參數曲線
- 16. 如何繪製與曲線
- 17. 如何使用JFreeChart繪製曲線?
- 18. 如何使用QuadCurve2D.Double繪製曲線段?
- 19. 如何繪製數組和曲線列表的曲線?
- 20. 使用Sympy在3D中繪製曲線
- 21. 在iPhone中繪製曲線?
- 22. 在AndEngine中繪製曲線
- 23. matplotlib:沒有正確地繪製曲線
- 24. 如何使用JFreeChart繪製曲面?
- 25. 如何使用lispbuilder繪製曲面
- 26. 如何在Qt中繪製曲線?
- 27. 如何在Piccolo2D中繪製曲線?
- 28. 如何繪製來自BinaryClassificationMetrics的ROC曲線和精度 - 召回曲線
- 29. 如何在Matlab中繪製貝塞爾曲線
- 30. 如何在MATLAB中繪製擬合曲線?
它確實是更多的Matlabby :) – twerdster 2012-08-17 14:29:21
+1用於指示'ezplot'不應該用於「複雜」(即真實)繪圖目的。 – Egon 2012-08-17 15:40:24