У меня есть следующая проблема и я не могу думать об обратном пути без циклов.Матричное умножение строки и столбца без цикла в matlab
Рассмотрим две матрицы:
a=rand(N,3), b=rand(3,N)
То, что я хочу получить является: b(:, i)*a(i, :)
(матрица 3 * 3) сцепляются третьего измерения для всех i
.
Таким образом, для приведенного выше примера результатом должна быть матрица (3 * 3 * N).
Нет это '(3x1) * (1x3) -> 3x3' Ь имеет N столбцов, которые являются векторами 3x1 и имеет N строк, которые являются векторами 1x3 – Paramar
Я уверен, что есть очень приятное решение, использующее 'kron' и' reshape', но я не могу понять это. Else just loop it –
Вы уверены, что исправленные вами исправления верны? Я думаю, что это умножение 1x3 x 3x1 -> 1x1. Кстати, продукт кронекера, кажется, делает больше вычислений, чем необходимо здесь. Вы можете видеть это по своим размерам 3x3xN и 3Nx3N. – Paramar