如何将这个八度代码转换为python,这个运算符在八度音阶中是什么' *它是什么等同于python等价物

时间:2017-03-20 16:28:59

标签: python numpy octave

这个算子在八度音阶中的含义是什么?它的等价是什么

以下八度代码的python等价物是什么?

a = [2;3]
b = [1;4]
a'*b

简而言之,我想知道什么是python相当于(' *),它叫什么,它做了什么。我怎样才能在python中实现相同的功能。我需要新的库吗?有人可以将此部分转换为python。

提前致谢

1 个答案:

答案 0 :(得分:0)

Dim sql As String = "INSERT INTO [sales] ([sandwich]) VALUES ([@sandwich])"
Try
    Using conn As New OleDbConnection(constring),
          cmd As New OleDbCommand(sql, conn)
        conn.Open()
        cmd.Parameters.Add("@sandwich", OleDbType.VarChar)
        For Each Order As TextBox In From t In grpbill.OfType(Of TextBox)()
                                     Where t.TextLength > 0
                                     Order By t.TabIndex
                cmd.Parameters("@sandwich").Value = Order.Text
                cmd.ExecuteNonQuery()
        Next 
    End Using
Catch ex As Exception
    MsgBox(ex.Message)
End Try

使用>> 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]])

MATLAB / Octave In [24]: np.dot([2,3], [1,4]) Out[24]: 14 In [25]: 2*1 + 3*4 Out[25]: 14 是转置(有时也写为',共轭转置)。 .'是矩阵乘法,*np.dot也使用np.matrix作为矩阵乘法。

正如评论中指出的那样,我得到了倒退。 *是简单的转置。

也许更重要的是,MATLAB / Octave矩阵总是至少2d,转换总是有所不同。 .'数组可能是1d,在这种情况下numpy什么都不做。因此,在我的字面翻译中,我添加了一个尾随维度,以确保np.transposea的形状为(2,1)。

b有一个numpy子类,应该对任性的MATLAB用户更友好。然而它是多年前编写的,当时MATLAB只有2d矩阵。所以np.matrix总是2d,永远不会更多。

np.matrix是共轭转置,名称为np.matrix(a).conjugate()。 (np.matrix(a).H是非共轭转置。)

.T