我需要編寫一個函數,該函數將採用半徑爲r的函數,並嚴格返回以原點爲中心的半徑爲r的圓內的整數個離散點。任何提示將不勝感激。MATLAB:返回圖形下離散點的數目
回答
即使您沒有向我們展示任何解決您的代碼的嘗試,但這是一個不錯的練習,我不介意解決這個問題。你可以首先做的是產生一個以原點爲中心的方形網格座標系,它位於-r
和+r
之間。請記住,如果我正確地解釋您的問題,則2D網格中每個點之間的間距爲1。
一旦你這樣做,你可以找到那些歐氏距離嚴格小於r
的位置,然後返回滿足這個條件的點數。要生成點的正方形網格,請使用meshgrid
。假設你已經在r
定義你的半徑,你會做以下代碼:
[x,y] = meshgrid(-r:r, -r:r);
x = x(:);
y = y(:);
num_points = sum(x.^2 + y.^2 < r^2);
的x = x(:);
和y = y(:);
是很重要的。這將每個x
和y
的2D網格變成單列向量。具體來說,它需要矩陣的每一列,並將它們從上到下堆疊起來形成一個單獨的向量。它使分析更容易。原因是因爲如果我們試圖在2D矩陣上使用sum
,它只能在一個方向上求和。您可以單獨彙總所有列,也可以單獨彙總所有行。既然你想總結整個數組,你可以調用sum
兩次,或者將你的2D網格轉換成一堆一維數組。我選擇了第二種方法,因爲我覺得它更乾淨,但有些人並不介意將電話號碼連在一起......這只是一種風格偏好。
一旦你這樣做,我們只需檢查歐幾里德距離是否小於半徑。請注意,我正在計算歐幾里德平方距離以避免計算平方根。它會節省計算時間。然後我們總結所有實例,這將定義在半徑內有多少個點。
作爲一個例子,假設我們的半徑是r = 2
。這是我們點的meshgrid
會是什麼樣子:
r = 2;
[x,y] = meshgrid(-r:r, -r:r)
x =
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
y =
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
對於我們的2D網格每個座標,我們在每一個點相關聯的(x,y)
對。我們得到點的最終數目爲:
num_points =
9
這有意義的,因爲是嚴格小於2只應在3×3塊以原點爲中心的點。如果你想確保,我們可視化的網格的樣子,你轉換座標爲一維向量之前:
[x,y] = meshgrid(-r:r, -r:r);
disp(x.^2 + y.^2 < r^2);
0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0
位置是1
表示true
,這意味着該統籌滿足它嚴格地小於r
。 0
的位置表示false
,這表示它們在外面。算法的最後一部分是對所有這個數組進行求和,這給了我們9個,這就是嚴格在r
之內的點數。
希望這會有所幫助。祝你好運!
- 1. 散點圖在Matlab
- 2. pcolor散點圖matlab
- 3. Matlab中的散點圖Gui
- 4. MATLAB:散點圖 - 不同形狀的點根據位置
- 5. matplotlib中的散點圖返回錯誤
- 6. MATLAB圖中的多個離散值
- 7. Matlab - 7乘5散點圖的子圖?
- 8. 水平條形圖上的核心散點圖散點圖
- 9. 使用Matlab將離散點連接在一個圖中?
- 10. MatLab:散點圖和柵格圖
- 11. Matlab集羣編碼 - 圖散點圖
- 12. gnuplot:3d圓形散點圖
- 13. Matlab中的動畫3D散點圖
- 14. 定義Matlab的散點圖規模
- 15. 從MATLAB中的結構散點圖
- 16. Matlab的:散點圖,以功能
- 17. 在圖形上繪製離散點TI-BASIC
- 18. 散景返回空地圖
- 19. 如何在MATLAB中自定義離散函數圖?
- 20. Matlab繪圖二維散點和線組
- 21. MATLAB-如何繪製散點圖矩陣
- 22. 從碎片機下載散列圖像返回的圖像?
- 23. Matlab中的離散傅立葉變換
- 24. D3散點圖,以不同的形狀
- 25. 散列數組返回值
- 26. matlab中的散點圖數據插值2013
- 27. numpy的點積返回NaN,MATLAB相當於不返回NaN的
- 28. 點擊下載散點圖座標
- 29. 離散和動態系統Matlab
- 30. 用直線連接點的Matlab散點圖
到目前爲止你做了什麼?請告訴我們。一個代表性的形象也會很好:) – 2014-09-23 18:50:41
我目前沒有太多的代碼。但我的想法是,我將有一個從-R到R的整數範圍,代表每個x和y,然後需要計算滿足x^2 + y^2
user2049004
2014-09-23 19:00:52
@ user2049004 - 你有正確的想法。你只需要找出正確的功能來生成你的座標:)看我的帖子。 – rayryeng 2014-09-23 19:02:41