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