三元组矩阵存储格式下矩阵乘法matlab代码
博客用不来直接发代码了
function [ C ] = syzjzcf( A,B )
% 输入可相乘的、行优先的三元组矩阵A,B
% 输出为相乘结果C
mA= A(1,1);%A矩阵中的行数
nA= A(1,2);%A的列数
mB=nA;%B矩阵中的行数
nB= B(1,2);%B的列数
%行优先算乘法结果,结果共有mA行,nB列
C = zeros(mA,nB);%相乘结果C矩阵
for i = 1:mA
for j = 1:nB
Cij = 0; %Cij的值
for arow = 2:size(A,1) %遍历A中所有矩阵元素位置三元组
for brow = 2:size(B,1) %遍历B中所有矩阵元素位置三元组
if A(arow,1)==i && A(arow,2)==B(brow,1) && B(brow,2)==j
% 矩阵乘法满足条件
Cij = Cij + A(arow,3)*B(brow,3);
end
end
end
if Cij~=0
C(i,j)=Cij;
end
end
end
end