matlab将直角坐标转成极坐标的代码,要具体的代码,不要关于坐标系绘制的代码,就要转坐标的代码!

作者&投稿:贯试 (若有异议请与网页底部的电邮联系)
怎么在matlab里编一个程序,把直角坐标的点 转换成 极坐标的点~

首先,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

测试结果如下:

A=imread('heat.jpg'); %读取图像(已经存到当前文件夹)A1=double(A(:,:,1));A2=double(A(:,:,2));A3=double(A(:,:,3)); %rgb3通道转为double类型[m n]=size(A1);[t r]=meshgrid(linspace(-pi,pi,n),1:m); %原图坐标M=2*m;N=2*n;[NN MM]=meshgrid((1:N)-n-0.5,(1:M)-m-0.5);T=atan2(NN,MM);R=sqrt(MM.^2+NN.^2); %变换图坐标B1=interp2(t,r,A1,T,R,'linear',0);B2=interp2(t,r,A2,T,R,'linear',0);B3=interp2(t,r,A3,T,R,'linear',0); %rgb3通道插值B=uint8(cat(3,B1,B2,B3)); %合拼转换回uint8类型subplot(121),imshow(A); %画原图subplot(122),imshow(B); %画变换图

matlab里面有直角坐标转成极坐标的函数
cart2pol
函数功能:在MATLAB中, 该函数用于把笛卡尔坐标转换为极坐标(柱坐标)。
语法格式:
[THETA,RHO,Z] = cart2pol(X,Y,Z)
把三维笛卡尔坐标(X,Y,Z)转换为对应的柱坐标(THETA,RHO,Z)。THETA是沿逆时针方向与X轴正方向的夹角,RHO是点(X,Y,Z)在OXY平面上的投影与原点的距离,Z是(X,Y,Z)坐标距OXY平面的高度。
[THETA,RHO] = cart2pol(X,Y)
把二维笛卡尔坐标(X,Y)转换为对应的极坐标(THETA,RHO)。
相关函数:cart2sph,pol2cart, sph2cart

% by dynamic
% see also http://www.matlabsky.com
% contactme matlabsky@gmail.com

pol2cart的调用格式如下

[X,Y] = pol2cart(THETA,RHO)
[X,Y,Z] = pol2cart(THETA,RHO,Z)

但是要绘制指教坐标图,方法主要如下

1、在直角坐标系绘制直角坐标数据
这个很简单,使用plot等就可以了,如果是极坐标那是用pol2cart转换到直角坐标
a=.2;
theta=linspace(-5,5);
rho=exp(a*theta);
[x,y]=pol2cart(theta,rho)
plot(x,y)

2、在直角坐标系绘制极坐标数据
这个需要先创建一个直角坐标系,然后就可以直接使用极坐标函数绘图,而不需要进行坐标数据转换,这个绘图技巧,很多人都不知道

hold on % 只是为了创建一个直角坐标系
a=.2;
theta=linspace(-5,5);
rho=exp(a*theta);
polar(theta,rho)

设(x,y)是直角坐标,则对应的极坐标为(theta,rho)。
其中:
theta = atan2(y,x);
rho = sqrt(x.^2+y.^2);


如何用matlab实现球坐标与直角坐标的转换?
cart2sph直角坐标改为球坐标sph2cart球坐标改为直角坐标

matlab中,在空间直角坐标系中,能不能用颜色表示一些不同点的分布呢...
如图:①首先根据经纬度的划分及其度数分布规律,判断出图上的经度是东经度还是西经度,纬度是北纬度还是南纬度。②读写出改点所在经线的度数和纬线的度数——OK了。例:写出A、B点的经纬度(坐标)解:①竖线是经线,根据经度的分布规律,往东增大的是东经度,故图上的经线都是东经度;横线是纬度,...

matlab中plot3(x,y,z)是根据直角坐标系绘图;请问如何利用地球经纬度高度...
个人感觉你应该把经纬度换成球坐标进行计算再换算到x,y,z进行plot3 因为地球经纬度其实就是球坐标中的theta和fai角 取地球半径为常数R 有:x=(R+高度)cos纬度cos经度(这个是根据定义坐标系时选取的0点不同,选取cos或sin或者加上某个角度,但是一般以y轴正或负方向为经度0即可,纬度同理)y...

matlab中如何将极坐标函数转化为直角坐标函数并绘图
自己写代码做一次坐标系转换?x=rcostheta y=rsintheta。用对角变换矩阵与矢量运算形式应该比较方便的

matlab 如何在空间直角坐标系中画平面,比如画平面x+2y+z=1;请给出...
syms x y z ezsurf(x,y,1-x-2*y)如果希望去除网格可以再加上 shading interp 如果想让坐标轴显示比例相等,可以再加上 axis equal

matlab 坐标轴方向和我们平时用的平面直角坐标系一样么
matlab 坐标轴方向和我们平时用的平面直角坐标系一样么  我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览158 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 matlab 坐标轴 平面直角坐标系 搜索资料 本地图片 图片链接 提交回答 匿名 回答...

matlab 图像处理问题,极坐标图转换到直角坐标图
ilovematlab.cn\/上的回答插值方法反了 应该用反向法,从直角坐标开始,到极坐标图中找对应的点,如果没刚好对应的点,就插值获取

求助matlab 画一个直角坐标系
2017-09-30 如何用Matlab建立直角坐标系 1 2018-02-12 MATLAB中怎么把工作区中的数据用来画一个二维直角坐标系的... 1 2015-05-25 matlab为什么画不了空间直角坐标系 2017-06-10 matlab在图片中如何以任意一点为原点建直角坐标系? 2015-03-23 求用matlab帮我画个空间直角坐标系,图片如下。谢谢啦 2013...

如何用matlab画水平线
1、首先,可以在直角坐标系中画出一条平行于x轴的直线,如图所示:2、当然,可以设置该条线的线宽和颜色,如图所示:3、接着可以画出一条平行于y轴的直线,如图所示:4、最后,可以绘制几条不同颜色的直线,如图所示:

matlab中怎样用pol2cart把极坐标转换成直角坐标,求调用程序
by dynamic see also http:\/\/www.matlabsky.com contactme matlabsky@gmail.com pol2cart的调用格式如下 [X,Y] = pol2cart(THETA,RHO)[X,Y,Z] = pol2cart(THETA,RHO,Z)但是要绘制指教坐标图,方法主要如下 1、在直角坐标系绘制直角坐标数据 这个很简单,使用plot等就可以了,如果是极坐标那是用...

宿州市15840917942: matlab 将直角坐标系图像转换成极坐标系图像 -
易秋司悦: A=imread('heat.jpg'); %读取图像(已经存到当前文件夹)A1=double(A(:,:,1)); A2=double(A(:,:,2)); A3=double(A(:,:,3)); %rgb3通道转为double类型 [m n]=size(A1); [t r]=meshgrid(linspace(-pi,pi,n),1:m); %原图坐标M=2*m; N=2*n; [NN MM]=...

宿州市15840917942: 利用MATLAB函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换.写出函数和调用语句 -
易秋司悦:[答案] %x,y表示直角坐标,a,b表示极坐标 function [a,b]=trans(x,y) a = sqrt(x^2+y^2); if x>0 b = arsin(y/a); if b

宿州市15840917942: 用matlab编写函数实现直角坐标与极坐标下坐标的相互转换编写函数实现直角坐标与极坐标下坐标的相互转换.该函数要能分清输入的参数是直角坐标还是极坐... -
易秋司悦:[答案] 直接使用MATLAB自带的函数pol2cart和cart2pol或者polar等函数即可: 第一种: 直角坐标系绘制直角坐标数据,这个很简单,使用plot等就可以了; 如果是极坐标那是用pol2cart转换到直角坐标即可: a=.5;theta=linspace(-5,5); rho=exp(a*theta); [x,y]...

宿州市15840917942: 请问怎么把直角坐标系的图形转换到极坐标系?(MATLAB编程) -
易秋司悦: 首先将x根据区间换成0~2*pi:sita 接着将y根据区间换成0~1 :rho然后polar(sita,rho)即可

宿州市15840917942: 如何用matlab程序把直角坐标系下的二维图像转换为极坐标表示的图像. -
易秋司悦: [THETA,RHO] = cart2pol(X,Y),直角坐标转化成极坐标. pol2cart为极坐标转化成直角坐标. 例子: >> x=1:10; y=rand(1,10); [theta,rho]=cart2pol(x,y); polar(theta,rho) 另外,虚机团上产品团购,超级便宜

宿州市15840917942: 利用MATLAB函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换.写出函数和调用语句 -
易秋司悦: %x,y表示直角坐标,a,b表示极坐标 function [a,b]=trans(x,y) a = sqrt(x^2+y^2); if x>0 b = arsin(y/a); if b<0 b = 360-d; end else b = 180-arcsin(y/a); end

宿州市15840917942: 急!在线等.用matlab软件,编写函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换. -
易秋司悦: function [r, theta]=car2pol(x, y) r=sqrt(x.^2+y.^2); theta=atan(y./x);上面这个函数要保存成m文件的,在命令行运行edit car2pol, 然后进入一个m文件编辑器,内容复制进去以后保存. 以后就可以在命令行或者其他脚本中调用了. 例如 >> [r,t] = car2pol(10,20) 当然,这是随便举个例子了,可以换其他数.

宿州市15840917942: matlab编写函数实现直角坐标与极坐标下坐标的相互转换.麻烦大家看看我的程序 -
易秋司悦: 这个判断没法子进行,因为计算机并不知道你的输入是什么意义.而且两种坐标系的坐标都是实数,即程序中的double类型.要判断只有你自己注意输入参数表示的是什么了.PS:话说matlab已经提供了这种转换函数了,cart2pol和pol2cart

宿州市15840917942: 如何将matlab中极坐标中的函数转化到直角坐标系 -
易秋司悦: 首先,matlab 本身提供了把直角坐标转化为极坐标的函数 cart2pol.调用方法为: [TH,R] = cart2pol(X,Y) TH 是极坐标的角度坐标,R 是距离坐标. [TH,R,Z] = cart2pol(X,Y,Z) 这个函数同时支持3维直角坐标到柱坐标的转换.

宿州市15840917942: matlab 一副图像直角转极坐标并显示 -
易秋司悦: [X Y Z]=size(img);这不对!极坐标下的作图:polar()

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网