Как выполнить строковое умножение большой матрицы в R? - PullRequest
0 голосов
/ 04 октября 2018
  1. Предположим, A - матрица R.Если я хочу выполнить построчное умножение с элементами из вектора vec, я мог бы сделать:

sweep( A, 1, vec, "*" ).

Существует ли подобный, но эффективный способ сделать то же самое, если A был big.matrix R-объектом?

Моя главная цель заключается в следующем: у меня есть две большие матрицы размерности ~ 3500x3500 элементов, A и B.Я хочу сделать следующую операцию:

B %*% sweep( A, 1, vec, "*" ).

Я должен выполнить эти умножения матриц на протяжении многих итераций, но только vec изменяется на каждой итерации.Поэтому я подумал, что пакеты big.matrix / bigalgebra могут предлагать удобные способы для такого умножения матриц, но с этим умножением строк нужно разобраться.(Я понимаю, что могу преобразовать записи vec в диагональ big.matrix и выполнить полное умножение, но я бы предпочел иметь дело только с диагональными записями, как описано выше.) Ау, идеи / есть ли другие альтернативные пакеты для выполнениятак же?

Я очень ценю любую помощь!Спасибо!

...