【发布时间】:2018-03-11 22:14:10
【问题描述】:
我对 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中怎么做呢?
【问题讨论】:
-
在这里找到您的解决方案:stackoverflow.com/a/1001727/3768871
我对 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中怎么做呢?
【问题讨论】:
由于您没有使用element-wise division,因此您执行的操作等于为x 求解xA = B,其中A = m 和B = m_sum(参见mrdivide):
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);
使用Numpy 库的Python 等效项将是:
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))
【讨论】: