Вопрос:
У меня две матрицы А и В. A – матрица N-на-L, а B – матрица L-by-N.
A = [1 2 3; 4 5 6]; B = [ 7 8; 9 10; 11 12];
Я хотел бы умножить каждую строку первой матрицы на соответствующий столбец второй матрицы. После умножения у меня будет вектор (Nx1). Результатом будет
C = [ 1*7 + 2*9 + 3*11, 4*8 + 5*10 + 6*12];
Я могу выполнить умножение с циклом for, но он не эффективен для больших матриц.
ASize = size(A); for i = 1:ASize(1), C(i) = A(i,:) * B(:,i); end
Есть лучший способ сделать это?
Лучший ответ:
Я думаю, что это должно сделать трюк:
C = sum(A.*B’, 2); Ответ №1
Я думаю, что это будет работать лучше и просто
C=diag(A*B);