Matlab矩阵划分为python

时间:2018-03-11 22:14:11

标签: python matlab matrix

我对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中做到这一点?

1 个答案:

答案 0 :(得分:1)

由于您未使用element-wise division,因此您正在执行的操作等于xA = B求解x A = mB = 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))