def combine_xyz(vec, square=False):
"""Compute the three Cartesian components of a vector or matrix together
Parameters
----------
vec : 2d array of shape [3 n x p]
Input [ x1 y1 z1 ... x_n y_n z_n ] where x1 ... z_n
can be vectors
Returns
-------
comb : array
Output vector [sqrt(x1^2+y1^2+z1^2), ..., sqrt(x_n^2+y_n^2+z_n^2)]
"""
if vec.ndim != 2:
raise ValueError('Input must be 2D')
if (vec.shape[0] % 3) != 0:
raise ValueError('Input must have 3N rows')
n, p = vec.shape
if np.iscomplexobj(vec):
vec = np.abs(vec)
comb = vec[0::3] ** 2
comb += vec[1::3] ** 2
comb += vec[2::3] ** 2
if not square:
comb = np.sqrt(comb)
return comb
inverse.py 文件源码
python
阅读 34
收藏 0
点赞 0
评论 0
评论列表
文章目录