簡體   English   中英

numpy中有等效的Matlab點函數嗎?

[英]Is there an equivalent Matlab dot function in numpy?

numpy中有等效的Matlab dot函數嗎?

Matlab中的dot函數:對於多維數組A和B,點返回沿A和B的第一個非單維度的標量積。A和B的大小必須相同。

在numpy中,以下內容相似但不等效:

dot (A.conj().T, B)

在MATLAB中,具有相同大小的兩個矩陣ABdot(A,B)簡單來說是:

sum(conj(A).*B)

等效的Python / Numpy:

np.sum(A.conj()*B, axis=0)

Matlab example1:

A = [1,2,3;4,5,6] B = [7,8,9;10,11,12] dot(A,B)

結果:47 71 99

Matlab example2:

sum(A.*B)

結果:47 71 99

Matlab example2的數字版本:

A = np.matrix([[1,2,3],[4,5,6]]) B = np.matrix([[7,8,9],[10,11,12]]) np.multiply(A,B).sum(axis=0)

結果:矩陣([[47,71,99]])

檢查這些備忘單。

Numpy同時包含數組類和矩陣類。 數組類旨在成為用於多種數值計算的通用n維數組,而矩陣旨在專門幫助線性代數計算。 實際上,兩者之間只有幾個關鍵區別。

運算符* ,dot()和乘法():
對於數組, *表示逐元素乘法,而dot()函數用於矩陣乘法。
對於矩陣, *表示矩陣相乘,而multiple()函數用於按元素相乘。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM