我对matlab中的正确分工感到困惑。
m = [1 2 3 4 ; 5 6 7 8]
x = m/sum(m)
x =
0.2907
0.7093
我不知道matlab是如何得到这个结果的,显然x * sum(m)不等于m,以及如何在python中做到这一点?
答案 0 :(得分:1)
由于您未使用element-wise division,因此您正在执行的操作等于xA = B
求解x
A = m
和B = m_sum
(请参阅{{ 3}}):
m = [1 2 3 4; 5 6 7 8];
m_sum = sum(m);
x = m / m_sum;
也可以写成:
m = [1 2 3 4; 5 6 7 8];
m_sum = sum(m);
x = mrdivide(m,m_sum);
使用Python
库的Numpy
等效项将是:
import numpy as np
m = np.matrix('1 2 3 4; 5 6 7 8')
m_sum = np.sum(m, axis=0)
x = np.dot(m, np.linalg.pinv(m_sum))