0
我想將在笛卡爾系統中給出的一些點座標轉換爲對數極座標系。從直角座標轉換到對數極座標
但是,我不確定如何很好地執行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包含對應於距離的第一列和對應於角度的第二列給出的對數座標。
在此實現中有笛卡爾座標和極座標:http://www.mathworks.com/matlabcentral/fileexchange/29117-mouse-activity-tracking – 2011-01-08 08:34:05