Вы можете использовать крайнюю форму векторизации, потому что то, что у вас есть, это в основном матричный продукт. Чтобы увидеть это, рассмотрим
C(i,j) = sum_k A(i,k)*B(j,k)/M = 1/M * sum_k A(i,k)*B(j,k),
определяя транспонирование B
как Bt
, мы имеем
C(i,j) = 1/M * sum_k A(i,k) * Bt(k,j)
где сумма по определению является (i,j)
элементом матричного произведения A * Bt
. Другими словами, вам нужно
C = (A * B.')/M;
Используя ваш пример входных данных и вычислений C2
в соответствии с приведенным выше:
>> C
C =
30.6667 36.6667
75.6667 90.6667
120.6667 144.6667
165.6667 198.6667
>> C2
C2 =
30.6667 36.6667
75.6667 90.6667
120.6667 144.6667
165.6667 198.6667