Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21

Матрично-векторное умножение. ValueError

23.07.2022, 10:12. Показов 2167. Ответов 9

Студворк — интернет-сервис помощи студентам
При выполнении учебного задания вылазит ошибка "ValueError: setting an array element with a sequence" в 11 строке. Входные данные: a=1 2 b=1 2, 3 4 (записаны в виде 1 2 | 12, 34). При обычном запуске программа выдаёт [5.0, 11.0], что совпадает с верным ответом. Но при отправке на автоматическую проверку возникает вышеуказанная ошибка.
Python
1
2
3
4
5
6
7
8
9
10
11
a, b = input().split('|')
a = list(map(float, a.split()))
b =[list(map(float, e.split())) for e in b.split(',')]
 
# изменяйте только этот код
if len(a)!=len(b):
    print('error')
else:
    import numpy as np
    mv=np.matmul(b,a)
    print(list(mv))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2022, 10:12
Ответы с готовыми решениями:

Матрично-векторное умножение с использыванием технологии OpenMP
Добрый вечер. В универе начали проходить предмет по распараллеливанию вычислений. Дали задание на использование технологии OpenMP в...

Многопоточное матрично-векторное произведение
Доброго времени суток. Хочу написать многопоточный вариант матрично-векторного произведения. Единственное, что приходит на ум, - в методе...

Матрично-векторное произведение без хранения матрицы
Добрый день! Подскажите, пожалуйста, как написать handle функцию матрично-векторного произведения без хранения матрицы A с использованием...

9
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
23.07.2022, 11:09
Rina2328, логично. У вас в записи чисел 1 и 2 пропал пробел, и получилось 12. С 3 и 4 тоже самое.
0
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21
23.07.2022, 12:42  [ТС]
При выполнении учебного задания вылазит ошибка "ValueError: setting an array element with a sequence" в 11 строке. Входные данные: a=1 2 b=1 2, 3 4 (записаны в виде 1 2 | 1 2, 3 4). При обычном запуске программа выдаёт [5.0, 11.0], что совпадает с верным ответом. Но при отправке на автоматическую проверку возникает вышеуказанная ошибка.
Python
1
2
3
4
5
6
7
8
9
10
11
a, b = input().split('|')
a = list(map(float, a.split()))
b =[list(map(float, e.split())) for e in b.split(',')]
 
# изменяйте только этот код
if len(a)!=len(b):
    print('error')
else:
    import numpy as np
    mv=np.matmul(b,a)
    print(list(mv))
0
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21
23.07.2022, 12:47  [ТС]
Это моя опечатка. Набор данных после первой строки выглядит так: 1 2|1 2,3 4
После 2 и 3 a и b преобразуются в листы. a=[1,2], b=[[1,2],[3,4]]
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
23.07.2022, 13:21
Rina2328, а в условиях задачи говорится, что можно использовать numpy?
Напишите условие задачи так, как они даны.
0
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21
23.07.2022, 13:28  [ТС]
《На вход система подает матрицу W (список из списков с float) и вектор входных данных (список из float). Вам необходимо реализовать матрично-векторное умножение (по сути скалярное произведение между каждой строкой матрицы W и вектором входных данных. Результаты записать в список и отобразить на экран.

В случае, если количество столбцов (размер любой строки матрицы W) не равен размеру вектора входов - вывести "error".》
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
23.07.2022, 13:40
Так вы сравниваете размер списков a и b. А нужно сравнивать размер списка a с размером каждого списка в списке b
1
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21
23.07.2022, 14:28  [ТС]
numpy использовать разрешается, так как предыдущее подобное задание (вместо матрицы был вектор) решилось как раз через numpy

Добавлено через 5 минут
Можете показать, как это сделать?

Добавлено через 42 минуты
Попробовала len(a)!=len(b[0])
Снова при обычном запуске решение верное, при отправке та же ошибка.
К слову пробовала преобразовать а и b в numpy-массивы и использовать dot. Ошибка другая: 《TypeError: can't multiple sequence by non-int of type "float"》
Python
1
2
3
4
5
6
7
if len(a)!=len(b[0]):
    print('error')
else:
    import numpy as np
    a=np.array(a)
    b=np.array(b)
    mv=(b.dot(a)).tolist()
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
23.07.2022, 15:26
Лучший ответ Сообщение было отмечено Rina2328 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a, b = input().split('|')
a = list(map(float, a.split()))
b =[list(map(float, e.split())) for e in b.split(',')]
 
# изменяйте только этот код
ln = len(a)
if not all(ln==len(item) for item in b):
    print('error')
else:
    mv = []
    for item in b:
        sp = 0
        for i in range(ln):
            sp += item[i]*a[i]
        mv.append(sp)
    print(mv)
0
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 21
23.07.2022, 16:38  [ТС]
Спасибо большое, через for приняли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2022, 16:38
Помогаю со студенческими работами здесь

Векторное умножение векторов
Как умножить два N-мерных вектора? Примечание: необходимо найти координаты , а не модуль получившегося вектора...

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

Интерполяция точек, заданных матрично
Добрый день, коллеги! Появилась задача интерполировать функцию по заданным точка для дальнейшего нахождения различных физических величин...

Матрично-векторные параметры - МАИРЭС
В контрольной работе по указанной дисциплине дана схема (неинвертирующего усилителя на ОУ). Нужно использовать контурный базис. И...

Нейросети. raise ValueError("The passed save_path is not a valid checkpoint: " + ValueError: The passed save_path is not
Здравствуйте! Столкнулся с проблемой которую не могу решить. Подскажите пожалуйста в чем может быть проблема и как ее исправить ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru