纯小白,求教numpy一个矩阵计算的问题,挺急的,谢过了!

已知有矩阵nu 和 Q,应该怎么写程序才能得到如图所示的矩阵 ek ?

之前实在matlab上做的,现在想转到numpy上但不知道程序怎么写(就是个简单的循环但是不知道在numpy是什么格式)

自己写的numpy报错:

ek=np.zeros([6,4]);

q=np.array([2.588 2.964 4.029 1.4]);

nu=np.array([[1,0,1,0],[1,1,2,0],[1,1,1,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]);
Q=np.array([0.848,0.54,1.2,1.224,0.901,1.4]);
Q_trans=np.transpose(Q);


for i in range(6): 
ek[:,1]= np.multiply(nu[:,1]*Q_trans) 

附原来matlab上写的(运行顺利)

ek=zeros(6,4);

q=[2.588 2.964 4.029 1.4];

nu = [1 0 1 0 ; 1 1 2 0 ; 1 1 1 0  ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1];

for i = 1:6
ek(i,:) = nu(i,:)*Q(i)./q;
end

如果可以的话,我能给各位发matlab的程序,然后大神帮我翻译成numpy的格式吗

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

>>> import numpy as np
>>> nu = np.array([[1,0,1,0],[1,1,2,0],[1,1,1,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]])
>>> Q = np.array([0.848,0.54,1.2,1.224,0.901,1.4])
>>> q = np.dot(Q, nu)
>>> q
array([2.588, 2.964, 4.029, 1.4  ])
>>> ek = np.multiply(Q.reshape(6,1),nu)/q
>>> ek
array([[0.32766615, 0.        , 0.21047406, 0.        ],
       [0.20865533, 0.18218623, 0.26805659, 0.        ],
       [0.46367852, 0.4048583 , 0.29784066, 0.        ],
       [0.        , 0.41295547, 0.        , 0.        ],
       [0.        , 0.        , 0.22362869, 0.        ],
       [0.        , 0.        , 0.        , 1.        ]])