⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 矩阵相乘.cpp

📁 部分线性代数计算算法
💻 CPP
字号:
#include <iostream> 
#include <cstdlib> 
using namespace std;


template<typename T>
void matrixm(T *a,T *b,int rows,int cols,int colsb)
{
  int sum,l,i,j;
  for(l=0;l<rows;l++)
    {
     for(i=0;i<colsb;i++)
     {
         sum=0;     
      for(j=0;j<cols;j++)
          sum+=a[l][j]*b[j][i];
      cout.width(5);
      cout<<sum;
     }
     cout<<endl;
    }
}

template<typename T>
void matrixMtp(T *a,T *b,int rows,int cols,int colsb)
{
       int ct = 0, cm = 0, cw = 0; 

       // 对所有的i和j计算w ( i , j ) 

       for (int i = 1; i <= rows; i++) { 

         // 计算出结果的第 i 行 

         for (int j = 1; j <= colsb; j++) { 

           // 计算w ( i , j ) 的第一项 

           T sum =  a[ct]*b[cm]; 

           // 累加其余项 

           for (int k = 2; k <= cols; k++) { 

             ct++; // 指向* t h i s第i行的下一个元素 

             cm += colsb; // 指向m 的第j  列的下一个项 

            sum += a[ct] * b[cm]; 

            }
            
           cout.width(5); 

          cout<<sum;  // 保存w ( i , j ) 

          // 重新调整至行首和下一列 

          ct -=( cols - 1); 

          cm = j; 

          }
         (cout<<endl).width(5);

         //  重新调整至下一行的行首和第一列 

         ct += cols; 

         cm = 0; 

         } 


     } 

     
int main()
{
  int a[3][3]={1,2,1,2,1,2,3,2,3};
  int b[9]={1,2,1,2,1,2,3,2,3};
  matrixMtp(b,b,3,3,3);
  matrixm(a,a,3,3,3);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -