(Rho[:,None]*inter*A).sum(axis=0)
соответствует вашей вставке MATLAB.
Или с помощью einsum
для сортировки осей:
np.einsum('i,j->j', Rho,inter*A)
, которая просто уменьшается до:
Rho.sum() * inter*A
Это действительно то, что вы пытаетесь сделать в MATLAB?
Может помочь, если вы покажете фактический код MATLAB, использованный для создания Rho
, A
et c.
Mass=sum(Rho*inter.*A)
Каков размер Rho
и A
в MATLAB? Один может быть [1x150], а другой? Также Rho
[1x150] или [150x150]. *
- это матричное умножение, как @
в numpy, но .*
поэлементно.
В numpy
коде y
, Rho
и A
все имеют форму (150,). Транспонирование на y
ничего не делает. Rho*inter*A
- это поэлементное умножение, производящее также (150,).