在MATLAB中将数组从球面坐标转换为笛卡尔坐标

时间:2018-11-10 22:27:42

标签: matlab cartesian-coordinates spherical-coordinate

我正在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_thetaN_phi选择特定的值,并且每个点在球坐标中都有位置矢量,其中第一个分量为theta,第二个分量为{{ 1}},第三个组成部分是phi。然后,运行该公式将创建一个数组(我将其称为r),该数组将获取N个点中每个点的位置向量,并将它们彼此紧挨着排成3xN的矩阵。

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

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

sph2cart

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

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

0 个答案:

没有答案