矩陣相乘

小小雨傘發表於2020-11-01
#include<iostream>
using namespace std;
int main()
{
	const int row1=2,column1=3;
	const int row2=3,column2=4;
	const int row=row1,column=column2;
	int arr1[row1][column1]={{1,2,3},{4,5,6}};//2*3的矩陣 ;
	int arr2[row2][column2]={{2,2,2,2},{2,2,2,2},{2,2,2,2}};//3*4的矩陣; 
	int arr[row][column];//相乘之後的矩陣;
	for(int i=0;i!=row;i++)
	{
		for(int j=0;j!=column;j++)
		{
			arr[i][j]=0;
			for(int k=0;k!=row2;k++)
			{
				arr[i][j]+=(arr1[i][k]*arr2[k][j]);
			 } 
		}
	 }
	    for(int i=0;i!=row;++i)
	    {
	 	    for(int j=0;j!=column;++j)
	 	    {
	 		    cout<<arr[i][j]<<" ";
		    }
		        cout<<endl;
	    }
	  
	 return 0;
	 
}

根據矩陣的運算規則:第一個矩陣的第一行乘以第二個矩陣的第一列然後加起來就是新矩陣的第一行第一列;

 根據陣列的運算規律,先計算列再是計算行.

先定義一個行,在定義一個列,再頂一個新變數k,用來控制變換的,因為一個是航變一個是列變所以不能用j和i;

而k既可以增加,又可以控制列和行。

相關文章