稀疏矩阵乘法函数:C语言实现
void multiplyMatrices(SparseMatrix* matrixA, SparseMatrix* matrixB, SparseMatrix* result) {\n if (matrixA->cols != matrixB->rows) {\n printf("矩阵不可相乘。\n");\n return;\n }\n\n initializeMatrix(result, matrixA->rows, matrixB->cols);\n int sum;\n\tfor (int i = 0; i < matrixA->rows; i++) { //换第一个矩阵行\n\t\tfor (int j = 0; j < matrixB->cols; j++) { //换第二个矩阵列\n\t\t\tsum = 0;\n\t\t\tfor (int k = 0; k < matrixB->rows; k++) { //换第二个矩阵行\n\t\t\t\tsum += getitem(matrixA, i, k) * getitem(matrixB, k, j);\n\t\t\t}\n\t\t\tif (sum != 0) {//不是零就加入新的三元组中\n\t\t\t\tinsertElement(result, i, j, sum);\n\t\t\t}\n\t\t}\n\t}\n}
原文地址: https://www.cveoy.top/t/topic/ptXY 著作权归作者所有。请勿转载和采集!