2010-08-05 479 views
0

我正在嘗試創建某個地方的二維地圖。我從機器人獲得一個181x1的激光傳感器讀數向量。該向量中的所有值都對應於距單一角度的距離,如1°,2°,180°。這裏的問題是我需要通過將這些距離繪製爲plot()或類似的函數來創建地圖。如何在MATLAB中使用繪圖()繪製二維地圖

回答

4

有一個繪製極座標的功能。嘗試

>> polar((0:180)/180*pi, distanceVector) 
1
plot(theVector, '.') 

,如果你需要繪製爲點,而不是行。如果點太小,請嘗試繪製成圓形。

plot(theVector, 'o') 

詳情請參見http://www.mathworks.com/access/helpdesk/help/techdoc/ref/linespec.html

+0

感謝您的attention.But我需要的可能是一個三角函數在循環中尋求的角度,把點上的plot.I適當的地方的意思是,我要構建這個地圖continuously.Here是故事。機器人激光傳感器將距離讀取爲181x1的距離矢量,並且該矢量包含這樣的數據[11.2 11.3 11.4 17 17.1 17.2 .....]。這裏第一個值11.2對應於激光傳感器從0讀取的第一個具體物體°。對於所有181個值(0到180)都是相同的。因此,我需要通過將這些點放在一個圖上或類似的圖上來構建一張圖。 – ayk 2010-08-05 13:42:54

+1

@dopache:我不明白。 'plot()'有什麼問題? – kennytm 2010-08-05 13:44:30

2

您可以使用POL2CART函數將角度 - 距離座標轉換爲笛卡爾X和Y.

[X,Y] = pol2cart((1:180)/180*pi, distanceVector); 

然後你可以使用PLOT。

plot(X,Y,'.')