Matrix 有人能帮我用这个矩阵乘矩阵的密码吗?

Matrix 有人能帮我用这个矩阵乘矩阵的密码吗?,matrix,Matrix,这是我写的代码,我试过了,但它只适用于相同长度的矩阵,它应该适用于第一个矩阵的列和第二个矩阵的行 void msklret(int matrixA[M][N],int matrixB[M][N],int matrixC[M][N],int r1,intc2,int r2) { inti,j,k,sum; 对于(i=0;i,假设您正在寻找朴素算法: 这是用c写的# 也可以写成: float[,] result = MatrixMultiply(matrixA,MatrixMultipl

这是我写的代码,我试过了,但它只适用于相同长度的矩阵,它应该适用于第一个矩阵的列和第二个矩阵的行

void msklret(int matrixA[M][N],int matrixB[M][N],int matrixC[M][N],int r1,intc2,int r2)
{

inti,j,k,sum;

对于(i=0;i,假设您正在寻找朴素算法:

这是用c写的#

也可以写成:

     float[,] result = MatrixMultiply(matrixA,MatrixMultiply(matrixB,matrixC));
给出了矩阵乘法的结合性质

 public float[,] MatrixMultiply(float[,] leftMat, float[,] rightMat)
{
   // get the required row and column ranks for both matrices
   int leftRowNum = leftMat.GetLength(0);
   int rightRowNum = rightMat.GetLength(0);
   int leftColNum = leftMat.GetLength(1);
   int rightColNum = rightMat.GetLength(1);


   // Check that the inner dimensions are the same
      if(leftColNum != rightRowNum)
          return null;
   int innerLen = leftColNum;

   // now define resulting matrix dimensions

   float[,] result = new float[leftRowNum,rightColNum];

   // perform the multiplication using 3 nested for loops
   for(int i = 0; i < leftRowNum; i++)
    {
      for(int j = 0; j < rightColNum; j++)
        {
              for(int inner = 0; inner < innerLen; inner++)
                 {
                     result[i,j]+= leftMat[i,inner]*rightMat[inner,j];

                 }
        }
    }

    return result;

 }
void msklret(int matrixA[M][N],int matrixB[M][N],int matrixC[M][N],int r1,intc2,int r2)


    float[,] result = MatrixMultiply(MatrixMultiply(matrixA,matrixB),matrixC);
     float[,] result = MatrixMultiply(matrixA,MatrixMultiply(matrixB,matrixC));