如何使用函数将笛卡尔坐标转换为极坐标

时间:2013-04-05 15:54:23

标签: matlab function

我正在尝试在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]并且每行都进行转换。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您不想使用MATLAB的函数CART2POL吗?

如果你看一下它就这样做:

th = atan2(y,x);
r = hypot(x,y);

至于你的代码,它在语法和逻辑上有很多问题。

首先你不需要循环。 MATLAB专门设计用于矢量和矩阵。您必须使用.*./.^运算符的元素乘法,除法和幂。

if X,Y;也没有做任何事情。阅读文档如何正确使用if。您预先分配M但不使用它。该函数应该返回homework5,但它没有在函数体中定义。你必须阅读有关功能的内容。确保将函数保存到具有相同名称Cartesian.m的文件中,并保存在当前目录或MATLAB的路径中。