2017-06-18 18 views
1

我的問題是,我想在python中創建一個函數,它需要兩個向量的輸入; M = metabolic產熱和g = thermal電導,以及返回和輸出T,這是一個Nm×Ng(其中N =相關向量中的元素數目)矩陣,其包含存活溫度的值。這些值來公式T_f,他們需要被插入到矩陣T 我的問題是,每次我想我的代碼運行時我收到錯誤消息:繼續收到錯誤消息「操作數無法與形狀一起廣播(3,)(2,)」如何解決此問題?

operands could not be broadcast together with shapes (3,) (2,). 

當錯誤信息從起源T_f公式。我如何解決這個問題,我如何從T_f中取值並將它們組合到矩陣T中? 我的代碼如下:

import numpy as np 
def survivalTemperature(M,g): 
    if (np.all([M])>=50 or np.all([M]) <=500) or (np.all([g])>=0.04 or np.all([g])<=0.45): 
     T_f = 36-(((0.9*M-12)*(g+0.95))/27.8) 
     T = T_f 
    else: 
     T = "RangeError" 
    return T 
print(survivalTemperature(np.array([50,200,300]),np.array([0.20,0.14]))) 

回答

0

兩個數組必須是相同的形狀。最後一行有3元素,另一行有2。他們都必須有相同數量的元素,請參閱Numpy Broadcasting Rules獲取更多幫助。

相關問題