Обобщенный матричный продукт

Я новичок в MATLAB. Нормальное матричное умножение матрицы M x K на матрицу K x N - C = A * B - имеет c_ij = sum (a_ik * b_kj, k = 1: K) . Что, если я хочу, чтобы это было вместо c_ij = sum (op (a_ik , b_kj), k = 1: K) для некоторой простой бинарной операции op ? Есть ли хороший способ векторизовать это в MATLAB (или, может быть, даже во встроенной функции)?

РЕДАКТИРОВАТЬ: В настоящее время это лучшее, что я могу сделать.

% A is M x K, B is K x N
% op is min
C = zeros(M, N);
for i = 1:M:
    C(i, :) = sum(bsxfun(@min, A(i, :)', B));
end
8
задан Shai 12 June 2013 в 10:33
поделиться