作为标题
我只有theta/rho数据
直线方程式为
如何在Matlab中使用这些数据绘制线条?
是否有任何函数可以将极角和极径作为输入?
谢谢。
我只有theta/rho数据
直线方程式为
x*cos(theta)+y*sin(theta)=rho
如何在Matlab中使用这些数据绘制线条?
是否有任何函数可以将极角和极径作为输入?
谢谢。
只需要使用一些简单的代数方法来找出y和x之间的关系。
取一些x的范围:
x = -10:10;
y = (rho - x* cos(theta) )/ sin(theta);
plot(x,y)
您可以直接使用内置的polar function。
polar(theta,rho)函数创建一个极坐标图,其中角度theta与半径rho相对应。theta是从x轴到以弧度指定的半径向量的角度;rho是以数据空间单位指定的半径向量的长度。
您还可以使用pol2cart()将极坐标转换为笛卡尔坐标,然后使用常规的plot(x,y)函数。
[X,Y] = pol2cart(THETA,RHO)函数将存储在THETA和RHO相应元素中的极坐标数据转换为二维笛卡尔坐标或xy坐标。数组THETA和RHO必须具有相同的大小(或者可以是标量)。THETA中的值必须以弧度为单位。
还有一个cart2pol()函数可以进行反向转换。
[THETA,RHO] = cart2pol(X,Y)函数将存储在数组X和Y的相应元素中的二维笛卡尔坐标转换为极坐标。
theta是以度数为单位的,因此应该使用sind
和cosd
代替sin
和cos
。
x = -10:10;
y = (rho - x* cosd(theta) )/ sind(theta);
plot(x,y)
y = ...
后绘制方程式x*cos(theta)+y*sin(theta)=rho
即可。编辑:使用此链接绘制方程式http://www.mathworks.com.au/help/matlab/ref/fplot.html。 - user993683