怎么在matlab里编一个程序,把直角坐标的点 转换成 极坐标的点 5

数字转换,比如输入直角坐标的点(x,y)然后输出的是其在极坐标中点的坐标(r,theta)... 数字转换, 比如 输入直角坐标的点(x,y) 然后输出的是其在极坐标中 点的坐标(r,theta) 展开
 我来答
themanisjimmy
2015-12-24 · TA获得超过2757个赞
知道小有建树答主
回答量:843
采纳率:89%
帮助的人:231万
展开全部

首先,matlab 本身提供了把直角坐标转化为极坐标的函数 cart2pol。调用方法为:

[TH,R] = cart2pol(X,Y)  TH 是极坐标的角度坐标,R 是距离坐标。

[TH,R,Z] = cart2pol(X,Y,Z) 这个函数同时支持3维直角坐标到柱坐标的转换。


如果因为是作业或者练习,一定要自己写一个的话,请继续往下看。

考虑到这个程序的性质,编成一个函数比较适合。编写这个函数需要用到直角坐标与极坐标的数学关系。考虑到输入参数可能是一个向量或矩阵,关系式里面的运算符应该用加点运算符。


函数代码如下:

function [ TH,R ] = mycart2pol(X,Y)

%this function transforms corresponding elements of data

%stored in Cartesian coordinates X,Y to polar coordinates

%angle TH and radius R.

R=(X.^2+Y.^2).^0.5;

TH=atan(Y./X);

end


测试结果如下:

loujing
2012-11-22 · TA获得超过1818个赞
知道小有建树答主
回答量:455
采纳率:100%
帮助的人:439万
展开全部
有现成的函数啊:
[theta,r] = cart2pol(x,y);

如果一定要自己写:
theta = atan2(y,x);
r = sqrt(x.^2+y.^2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
响亮的地方时代
2018-07-06
知道答主
回答量:2
采纳率:0%
帮助的人:1375
引用themanisjimmy的回答:
首先,matlab 本身提供了把直角坐标转化为极坐标的函数 cart2pol。调用方法为:
[TH,R] = cart2pol(X,Y) TH 是极坐标的角度坐标,R 是距离坐标。
[TH,R,Z] = cart2pol(X,Y,Z) 这个函数同时支持3维直角坐标到柱坐标的转换。

如果因为是作业或者练习,一定要自己写一个的话,请继续往下看。
考虑到这个程序的性质,编成一个函数比较适合。编写这个函数需要用到直角坐标与极坐标的数学关系。考虑到输入参数可能是一个向量或矩阵,关系式里面的运算符应该用加点运算符。

函数代码如下:
function [ TH,R ] = mycart2pol(X,Y)
%this function transforms corresponding elements of data
%stored in Cartesian coordinates X,Y to polar coordinates
%angle TH and radius R.
R=(X.^2+Y.^2).^0.5;
TH=atan(Y./X);
end

测试结果如下:

展开全部
atan返回值属于-pi/2到pi/2之间,所以这个答案的程序是有bug的,建议采用自带的函数,当然已采纳答案的思路还是很不错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式