Как умножить каждую строку матрицы на соответствующий столбец другой матрицы в matlab?

Вопрос: У меня две матрицы А и В. A - матрица N-на-L, а B - матрица L-by-N. A = [1 2 3; 4 5 6]; B = [ 7 8; 9 10; 11 12]; Я хотел бы умножить каждую строку первой матрицы на соответствующий столбец второй матрицы. После умножения у меня будет вектор (Nx1). Результатом

Вопрос:

У меня две матрицы А и В. 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);

Оцените статью
Добавить комментарий