我正在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
,第二个分量为{{ 1}},第三个组成部分是phi
。然后,运行该公式将创建一个数组(我将其称为r
),该数组将获取N个点中每个点的位置向量,并将它们彼此紧挨着排成3xN的矩阵。
我基本上只需要获取该数组并将其转换为原来的数组,所有矢量彼此相邻,但是现在位置矢量位于笛卡尔坐标中(我们可以将新数组称为b
)。
我已经在MATLAB中为此目的设计了B
函数,但是我不确定是否正确使用了它,希望有人指出我做错了什么。例如,我已经尝试过
sph2cart
和
B=sph2cart(b(1,:),b(2,:),b(3,:));
但是它们都创建的矩阵太小,因此显然出了问题。