【发布时间】:2010-11-13 11:52:53
【问题描述】:
我想将笛卡尔坐标系中给出的一些点坐标转换为对数极坐标笛卡尔坐标系。
但是,我不确定如何很好地执行 atan 操作。
目前,我是这样做的,看起来很丑。
Xlp = zeros(n, 2);
Xlp(:, 1) = log(sqrt(Xt(:, 1).^2 + Xt(:, 2).^2));
sel = Xlp(:, 1) >= 0 && Xlp(:, 2) >= 0;
Xlp(sel, 2) = atan(Xt(sel, 2) / Xt(sel, 1));
sel = Xlp(:, 1) >= 0 && Xlp(:, 2) < 0;
Xlp(sel, 2) = repmat(2*pi, size(sel), 1) + atan(Xt(sel, 2) / Xt(sel, 1));
sel = Xlp(:, 1) < 0 && Xlp(:, 2) >= 0;
Xlp(sel, 2) = repmat(pi, size(sel), 1) + atan(Xt(sel, 2) / Xt(sel, 1));
sel = Xlp(:, 1) < 0 && Xlp(:, 2) < 0;
Xlp(sel, 2) = repmat(pi, size(sel), 1) + atan(Xt(sel, 2) / Xt(sel, 1));
输入点在 Xt 中,第一列是 X 坐标值,第二列是 Y 坐标值。 Xlp 包含对数极坐标,第一列对应距离,第二列对应角度。
【问题讨论】:
-
这个实现中有笛卡尔坐标和极坐标:mathworks.com/matlabcentral/fileexchange/…