如何让MATLAB以pi的形式显示弧度?

如何让MATLAB以pi的形式显示弧度?,matlab,math,polar-coordinates,radians,Matlab,Math,Polar Coordinates,Radians,我正在尝试制作一个程序,将笛卡尔坐标转换为极坐标 我的计算器返回的是arctan(1)aspi/4 另一方面,MATLAB将atan(1)返回为0.7854 我怎样才能让MATLAB将这样的数字作为pi的表达式返回?对于pi的某些特定值,可以使用符号数字,例如: atan(sym(1)) ans = pi/4 asin(sym(3^.5/2)) ans = pi/3 请注意,这需要符号数学工具箱。正如您所说的,这只是为了快速目视检查,我将除以π: n = 0.7854; disp(['n i

我正在尝试制作一个程序,将笛卡尔坐标转换为极坐标

我的计算器返回的是
arctan(1)
as
pi/4

另一方面,MATLAB将atan(1)返回为
0.7854


我怎样才能让MATLAB将这样的数字作为
pi
的表达式返回?

对于
pi
的某些特定值,可以使用
符号
数字,例如:

atan(sym(1))
ans =
pi/4

asin(sym(3^.5/2))
ans =
pi/3

请注意,这需要符号数学工具箱。

正如您所说的,这只是为了快速目视检查,我将除以π:

n = 0.7854;
disp(['n in terms of pi: ', num2str(n/pi), '*pi']); 
>> n in terms of pi: 0.25*pi
如果这是您经常想做的事情,我会在您的计算机上定义一些函数

然后


你还说这只是为了识别弧度象限,除了学习它们,你还可以有一个简单的函数

function q = quadrant(n)
    Qs = pi*[0, 1/2, 1, 3/2];               % Quadrants
    q = find(Qs <= mod(n,2*pi), 1, 'last'); % Index within the quadrants
    % You could make this accept vector inputs using:
    % q = arrayfun(@(x) find(Qs <= mod(x,2*pi), 1, 'last'), n)
end


请注意,将符号数学工具箱用于如此简单的事情可能会导致更多的复杂性和减速,而不是帮助

您希望用
pi
表示它有什么特殊原因吗<代码>pi/4=0.7854。如果您的目标是在数值计算中使用
arctan(1)
,那么您不应该关心它是如何用数字表示的——无论是在您的个人计算器上还是在MATLAB上。物理量是相等的。如果你想把它显示在一个图形上或者一个图形上,那就不同了。请具体说明这项工作的最终目标是什么。主要是,我更容易确定我的答案属于哪个象限。象限被划分为
pi/2=1.57的倍数。因此,介于0和1.57之间的值将是第一象限,介于1.57和3.14之间的值将是第四象限,介于-1.57和0之间的值将是第二象限,最后介于-3.14和-1.57之间的值将是第三象限。我建议您知道它属于哪个象限,使用数字范围,而不是依赖于转换,如下面提供的答案。如果你打算长时间运行代码,依赖下面的答案会给你带来性能上的打击。谢谢,我会致力于学习它们*如果你有符号数学工具箱,请注意这会带来性能上的打击,不确定这是否是找到象限的最优雅的方法,但这是我想到的第一个逻辑!
n = 0.7854;
[val, str] = wrtpi(n)
>> val = 0.25
   str = n in terms of pi: 0.25*pi
function q = quadrant(n)
    Qs = pi*[0, 1/2, 1, 3/2];               % Quadrants
    q = find(Qs <= mod(n,2*pi), 1, 'last'); % Index within the quadrants
    % You could make this accept vector inputs using:
    % q = arrayfun(@(x) find(Qs <= mod(x,2*pi), 1, 'last'), n)
end
quadrant(2*pi - 0.0001) % >> 4
quadrant(0.2)           % >> 1
quadrant(1.6)           % >> 2