Что неверно в цикле? Всем привет. Проблема в следующем: нужно все элементы массива всего лишь навсего прогнать через формулу. Формулу Эйлера: cos(i) + 1j*sin(i), если шо. Вот почему-то на выходе получается одно значение в массиве конечном. Не понимаю -- почему?coord = ...
print(coord) #с массивом всё в порядке, он выводится.
#создаю новый массив-в него будут записываться прогнанные через формулу значения
coordarray = []
for i in coord:
x = np.real(cos(i)) + np.imag(sin(i)*1j)
coordarray.append(x)
print('Coordinates: ')
print(coordarray)
1j -- это мнимая единица, отсюда же и использование np.real/np.imag

21 Авг 2019 в 06:10
130 +1
0
Ответы
1

Проблема заключается в том, что вы должны использовать функции np.cos и np.sin для вычисления косинуса и синуса в формуле, а не обычные функции из модуля math.

Исправленный код будет выглядеть следующим образом:

import numpy as np
# Создаем массив coord
coord = [1, 2, 3, 4, 5]
print(coord) # с массивом все в порядке
# Cоздаем новый массив, в который будут записываться прогнанные через формулу значения
coordarray = []
for i in coord:
x = np.real(np.cos(i) + 1j*np.sin(i))
coordarray.append(x)
print('Coordinates: ')
print(coordarray)

Теперь код должен правильно вычислять значения для каждого элемента массива coord.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 727 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир