0
我試圖在MATLAB中創建一個採用笛卡爾座標並將其轉換爲極座標的函數。如何將直角座標轉換爲極座標使用函數
function [homework5] = Cartesian(X,Y)
M = size(X,1)
for N=1:M
if X,Y;
r=sqrt(X^2+Y^2)
theta=atan(Y/X)
else
disp('input incorrect')
end
if r > 10
disp('Far from Origin')
else
disp('Close to Origin')
end
end
我對MATLAB非常陌生,我的答案和閱讀教程e.t.c的搜索已被證明是徒勞的。
我把它轉換成1座標就好了,但我需要一次轉換多個座標(因此forloop),但我無法得到它!用戶需要能夠像這樣輸入一個數組:>> Cartesian = [2,3; 4,5; 6,7]並且每行都被轉換。
感謝您的幫助!
是的,我剛纔看到了,但我的教授顯然希望輸入實際的方程式。我不明白爲什麼它有所作爲,但這是他想要的方式。 – Kerblooy 2013-04-05 16:03:23
也許你的教授希望你弄清楚如何以編程方式轉換座標,而不是隻使用一些特定的功能。 – Guarita 2013-04-05 20:51:14
我認爲你應該繼續前進的方式:r = sqrt(X^2 + Y^2);和theta = atan(Y/X));但你必須注意X是負的點。 ATAN功能僅輸出從-pi/2到pi/2(其中X爲正數)的角度。您應該添加一些'if'語句來驗證角度是在2或3象限(X <0)上,然後如果X爲負值,則將'pi'添加到所得角度。 (注意atan(X/Y)將返回相同的值,對於X = -1,Y = -2和對於X = 1,Y = 2)。 – Guarita 2013-04-05 20:59:06