0

我在 MATLAB 中使用一个公式,该公式在球坐标中对单位球体上的点进行索引。

[i, j] = ndgrid(1:N_theta, 1:N_phi);

theta = (i-1)*2*pi/N_theta;

phi = (j)*pi/(N_phi+1);

r = 1;

b = [theta(:).'; phi(:).'; r * ones(1,numel(theta))];

假设我为 和 选择了特定值,N_theta并且N_phi每个点在球坐标中都有一个位置向量,其中第一个分量是theta,第二个分量是phi,第三个分量是r。运行该公式然后创建一个数组(我称之为它b),该数组获取 N 个点中每个点的位置向量,并将它们全部相邻排列以形成一个 3xN 矩阵。

我基本上只需要获取该数组并将其转换为相同的数组,其中向量彼此相邻,但现在位置向量位于笛卡尔坐标中(我们可以称为新数组B)。

sph2cart在 MATLAB 中查找了为此目的而设计的函数,但我不确定我是否正确使用它,并希望有人能指出我做错了什么。例如,我已经尝试过

B=sph2cart(b(1,:),b(2,:),b(3,:));

B = sph2cart(theta,phi,r);

但是它们都创建了太小的矩阵,所以显然出了点问题。

4

0 回答 0