>> rng('default');
>> A = randi(3, 2, 3); B = randi(3, 3, 2);
matlab 原生支持
>> A*B
ans =
11 16
12 15
定义
C = zeros(size(A, 1), size(B, 2));
for i = 1:size(A, 1),
for j = 1:size(B, 2),
C(i, j) = A(i, :)*B(:, j);
end
end
或者以逐列的方式进行求解:
C = zeros(size(A, 1), size(B, 2));
for j = 1:size(B, 2),
for i = 1:size(A, 1),
C(i, j) = A(i, :)*B(:, j);
end
end
矢量化方式
C = zeros(size(A, 1), size(B, 2));
for i = 1:size(A, 1),
C(i, :) = A(i, :) * B;
end
Am×nBn×p=∑jA(:,j)B(j,:)
C = zeros(size(A, 1), size(B, 2));
for j = 1:size(A, 2),
C = C + A(:, j)*B(j, :);
end