首页 > 解决方案 > Matlab cart2pol函数

问题描述

Matlab 的 cart2pol() 函数计算 theta 的值是否不同?这是我在使用 cart2pol 转换为极坐标时得出的一个示例。

首先,我用cart2pol 实现它。

N = 8;
x = 1:N; y = x;
[X,Y] = meshgrid(x,y);
[theta,rho] = cart2pol(X-floor(N/2),-(Y-floor(N/2)))

这使

在此处输入图像描述

现在,如果我使用以下等式:

在此处输入图像描述

注意在 Matlab 中,-1 和 +1 不是必需的

theta = atan2((N-2.*Y),(2.*X-N))

我得到:

在此处输入图像描述

为什么值 3.1416 对于 cart2pol 函数为负数,而根据方程为正数?

标签: matlab

解决方案


正如烧杯所说,角度是相同的。但关于您的评论:您始终可以使用edit <functionname>来查看 Matlab 功能是如何实现的。这通常适用于.m文件,但不适用于PandMEX文件,因为它们是二进制的,因此不能直接编辑。所以

edit cart2pol

在这种情况下,您会看到一切cart2pol都只是atan2(y,x)为了获得θ。因此,这意味着不同的结果仅仅是因为您使用与“公式”中使用的输入不同的输入调用函数。

atan2(-(Y-floor(N/2)),X-floor(N/2))

给出与您的调用完全相同的结果cart2pol


推荐阅读