我試圖繪製一個具有不同行爲的函數,具體取決於x軸的值。對於x軸('ec'變量)小於2.0的值,它的行爲是單向的,對於大於這個值的值,它以另一種方式起作用。功能裏的'for'迭代的問題
import numpy as np
import matplotlib.pyplot as plt
ec = np.linspace(0., 3.,20) #range of 'x' axis values
def ten_def(x):
for i in ec:
if i <= 2.:
return 0.85*x*(1-(1-(ec/2))**2) #behavior for ec < than 2.0
else:
return 0.85*x #behavior for ec > 2.0
fcd = float(input('Fck (MPa): '))/1.4
plt.plot(ec, ten_def(fcd), 'b-', ec,(ec*0)+fcd*0.85,'r-')
plt.title('Tensão-deformação')
plt.xlabel('Deformação (‰)')
plt.ylabel('Tensão (MPa)')
plt.show()
代碼的繪圖部分正在工作。但是它繪製了一條曲線,它對於整個地塊具有相同的行爲(它始終在考慮EC < 2.0)。我究竟做錯了什麼?
第一次回來,這就是函數的結束。這就像給別人發送信使一樣。一旦使者被告知回覆給你答覆,任何其他答覆都是無用的,因爲使者已經離開了。 – zondo