Что неверно в цикле? Всем привет. Проблема в следующем: нужно все элементы массива всего лишь навсего прогнать через формулу. Формулу Эйлера: 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
157 +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 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир