Почему я не могу ввести числа с плавающей точкой в ​​t? - PullRequest
0 голосов
/ 10 июля 2019

Я должен кодировать основной логистический рост, который позже будет использован для роста опухоли.

Я должен поместить значения с плавающей точкой в ​​t, но это дает мне ошибку, и я думаю, что это потому, что диапазон может принимать только целые числа. Но диапазон должен быть т. Есть ли способ сделать это?

Логистический рост

import numpy as np
import matplotlib.pyplot as plt
import csv

val = float(input("Enter your value: ")) 
r = .25 # growth rate / year ,|(birth/death rate)
K = 100 # carrying capacity
t=val
num = np.zeros(t+1)
num[0] = 1

for i in range(t):
    num[i+1] = num[i]+r*num[i]*(1-num[i]/K)
    row= (i+1,'\t\t',format(num[i], '.8f'))
    print (row)

    with open('plot.csv', 'a') as csvFile:
            writer = csv.writer(csvFile, delimiter=' ')
            writer.writerow(row)
            csvFile.close()

plt.plot(range(t+1),num, 'b')
plt.xlabel('Time')
plt.ylabel(' Cell Number')
plt.title('Logistic Growth')
plt.axvline(np.argmax(np.diff(num)),  color = 'k'  )

plt.show()

1 Ответ

3 голосов
/ 10 июля 2019

Если вы имеете дело с целыми числами, хранящимися в float, вы можете просто преобразовать t в int:

>>> range(int(7.0))
[0, 1, 2, 3, 4, 5, 6]

Если вам нужны диапазоны с плавающей точкой, np.arange() работает для этого:

>>> np.arange(0.2, 6.4, 0.5)
array([ 0.2,  0.7,  1.2,  1.7,  2.2,  2.7,  3.2,  3.7,  4.2,  4.7,  5.2,
        5.7,  6.2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...