三元组矩阵存储格式下矩阵乘法matlab代码

三元组矩阵存储格式下矩阵乘法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



你可能感兴趣的:(三元组矩阵存储格式下矩阵乘法matlab代码)