умножение двух списков матриц в непрерывной форме - PullRequest
1 голос
/ 11 апреля 2019

У меня есть два списка матриц, и я хочу умножить первый элемент первого списка на первый элемент второго списка и т. Д., Не записывая все операции, поскольку в каждом списке может быть большое количество элементов (оба списка имеют одинаковую длину)

вот что я имею в виду

'(colSums(R1*t(M1))),(colSums(R2*t(M2))),...(colSums(Rn*t(Mn)))'

Нужно ли создавать дополнительный список?Хотя сначала я должен иметь возможность транспонировать матрицы одного из списков перед их умножением.Результаты будут использоваться для более простых операций.

Я уже пытался использовать индексы и циклы и не работает, сначала попытался транспонировать матрицы в одном списке, как этот (M - один из списков, а другой -named R, M содержит M1, M2, .. Mn и то же самое для списка R)

Полная операция выглядит следующим образом:

'for (i in 1:length(M)){Mt<-list(t(M[[i]]))}'

и применяется только к последнему элементу.

Полная операция выглядит следующим образом:

 '(cbind((colSums(R1*t(M1))),(colSums(R2*t(M2))),...(colSums(Rn*t(Mn))))'

любой шаг из них будет полезен

1 Ответ

0 голосов
/ 11 апреля 2019

вы можете использовать пакет rlist.

Функция

list.apply(.data, .fun, ...)

будет применять функцию к каждому элементу списка.

Документацию можно найти по адресу [https://cran.r -project.org / web / packages / rlist / rlist.pdf] [1] .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...