如何将此八度音程代码转换为 python 以及八度音程中的运算符是什么 '* 以及它与 python 等价的是什么
How to convert this octave code to python and what is this operator in octave '* and what is it's python equivalent
Octave '* 中的这个运算符是什么,它是什么 python 等价物
以下八度编码的 python 等价物是什么?
a = [2;3]
b = [1;4]
a'*b
简而言之,我想知道 ( '* ) 的 python 等价物是什么,它叫什么以及它有什么作用。我如何在 python 中实现相同的功能?我需要新的图书馆吗?有人可以将这部分转换成 python.
提前致谢
>> a = [2;3]
a =
2
3
>> b = [1;4]
b =
1
4
>> a'*b
ans = 14
使用numpy
最直接的翻译是:
In [19]: a = np.array([2,3])[:,None]
In [20]: a
Out[20]:
array([[2],
[3]])
In [21]: b = np.array([1,4])[:,None]
In [22]: b
Out[22]:
array([[1],
[4]])
In [23]: np.dot(a.T,b)
Out[23]: array([[14]])
更短的表达式:
In [24]: np.dot([2,3], [1,4])
Out[24]: 14
In [25]: 2*1 + 3*4
Out[25]: 14
MATLAB/Octave '
是转置(有时也写成.'
,共轭转置)。 *
是矩阵乘法,np.dot
。 np.matrix
还使用 *
作为矩阵乘法。
正如评论中指出的那样,我倒退了。 .'
是普通转置。
也许更重要的是 MATLAB/Octave 矩阵总是至少 2d,转置总是有区别的。 numpy
数组可能是一维的,在这种情况下 np.transpose
什么都不做。因此,在我的直译中,我添加了一个尾随维度以确保 a
和 b
的形状为 (2,1)。
numpy
有一个 np.matrix
子类,这应该对任性的 MATLAB 用户更友好。然而,它是几年前编写的,当时 MATLAB 只有二维矩阵。所以 np.matrix
永远是 2d,永远不会更多。
np.matrix(a).conjugate()
是共轭转置,简称np.matrix(a).H
。 (.T
是非共轭转置。)
n [76]: aI = a+0*1j
In [77]: aI
Out[77]:
array([[ 2.+0.j],
[ 3.+0.j]])
In [79]: aI.conjugate()
Out[79]:
array([[ 2.-0.j],
[ 3.-0.j]])
In [80]: np.matrix(aI)
Out[80]:
matrix([[ 2.+0.j],
[ 3.+0.j]])
In [81]: np.matrix(aI).H
Out[81]: matrix([[ 2.-0.j, 3.-0.j]])
Octave '* 中的这个运算符是什么,它是什么 python 等价物
以下八度编码的 python 等价物是什么?
a = [2;3]
b = [1;4]
a'*b
简而言之,我想知道 ( '* ) 的 python 等价物是什么,它叫什么以及它有什么作用。我如何在 python 中实现相同的功能?我需要新的图书馆吗?有人可以将这部分转换成 python.
提前致谢
>> a = [2;3]
a =
2
3
>> b = [1;4]
b =
1
4
>> a'*b
ans = 14
使用numpy
最直接的翻译是:
In [19]: a = np.array([2,3])[:,None]
In [20]: a
Out[20]:
array([[2],
[3]])
In [21]: b = np.array([1,4])[:,None]
In [22]: b
Out[22]:
array([[1],
[4]])
In [23]: np.dot(a.T,b)
Out[23]: array([[14]])
更短的表达式:
In [24]: np.dot([2,3], [1,4])
Out[24]: 14
In [25]: 2*1 + 3*4
Out[25]: 14
MATLAB/Octave '
是转置(有时也写成.'
,共轭转置)。 *
是矩阵乘法,np.dot
。 np.matrix
还使用 *
作为矩阵乘法。
正如评论中指出的那样,我倒退了。 .'
是普通转置。
也许更重要的是 MATLAB/Octave 矩阵总是至少 2d,转置总是有区别的。 numpy
数组可能是一维的,在这种情况下 np.transpose
什么都不做。因此,在我的直译中,我添加了一个尾随维度以确保 a
和 b
的形状为 (2,1)。
numpy
有一个 np.matrix
子类,这应该对任性的 MATLAB 用户更友好。然而,它是几年前编写的,当时 MATLAB 只有二维矩阵。所以 np.matrix
永远是 2d,永远不会更多。
np.matrix(a).conjugate()
是共轭转置,简称np.matrix(a).H
。 (.T
是非共轭转置。)
n [76]: aI = a+0*1j
In [77]: aI
Out[77]:
array([[ 2.+0.j],
[ 3.+0.j]])
In [79]: aI.conjugate()
Out[79]:
array([[ 2.-0.j],
[ 3.-0.j]])
In [80]: np.matrix(aI)
Out[80]:
matrix([[ 2.+0.j],
[ 3.+0.j]])
In [81]: np.matrix(aI).H
Out[81]: matrix([[ 2.-0.j, 3.-0.j]])