@Akakiykica

Нужно построить прямоугольный импульс, ошибка в цикле, в чем проблема?

Не працює код, в чому може бути проблема?
Написати файл-сценарій для побудови графіку прямокутного імпульсу, тривалість та амплітуда якого буде задаватися з клавіатури. Розташування імпульсу задавати випадковим числом, але передбачити перевірку, чи не виходить імпульс за межі графіка;
import matplotlib.pyplot as plt
import matplotlib as mpl
import random
import numpy as np
mpl.rcParams['font.family']  ='fantasy'
mpl.rcParams['font.fantasy'] ='Comic Sans MS, Arial'
fd = 256.0
t_min = -0.5
t_max = 10.05
delta_t = 1.0/fd
print('Imput Amplitude: ')
A = int(input())
print('Imput Pulse Width (0; 10):')
b = int(input())
a = random.uniform(0, 10-b)
if b>10:
    print("Impulse outside the schedule")
exit()
def f(x):
    if x<a:
        return 0
    if x<a+b:
        return A
    return 0
x = []
y = []
t = t_min
while t<=t_max:
    x.append(t)
    y.append(f(t))
    t += delta_t
np.savez('listing', x, y, A)
plt.plot(x, y, 'r')
plt.xlabel('Time, s')
plt.ylabel('Amplitude')
plt.title('Square wave')
plt.grid(True)
axes = plt.gca()
axes.set_xlim([-1, 11])
axes.set_ylim([-1, A+1])
plt.show()
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Потому что нужно код писать аккуратно а не как попало. Удалите или отформатируйте правильно строку
...
if b>10:
    print("Impulse outside the schedule")
exit() # <----- закомментировать или удалить или правильно отформатировать пробелами
def f(x):
    if x<a:
...

и будет счастье.
Проблема - в ужасном коде.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы