#include "Matrix.h"
/*---------------------------------------------------------------------------------------------------
函数名称:Matrix_Add
输入参数:*A_Matrix:相加矩阵A的指针
*A_Matrix:相加矩阵B的指针
*A_Matrix:求和矩阵C的指针
返回参数:1:成功 2:矩阵格式不正确
函数功能:两个矩阵相加
----------------------------------------------------------------------------------------------------*/
uint8_t Matrix_Add(Matrix_Struct *A_Matrix,Matrix_Struct *B_Matrix,Matrix_Struct *C_Matrix)
{
uint16_t i,j;
if((A_Matrix->Row!=A_Matrix->Row)||(A_Matrix->Line!=A_Matrix->Line)) return 0;
C_Matrix->Row=A_Matrix->Row;
C_Matrix->Line=A_Matrix->Line;
for(i=0;i<(A_Matrix->Row);i++)
{
for(j=0;j<(A_Matrix->Line);j++)
{
C_Matrix->data[i][j]=A_Matrix->data[i][j]+B_Matrix->data[i][j];
}
}
return 1;
}
/*---------------------------------------------------------------------------------------------------
函数名称:Matrix_Num_Mulltiplication
输入参数:*A_Matrix :相加矩阵A的指针
num :要进行数乘的数值
返回参数:1:成功 2:矩阵格式不正确
函数功能:矩阵的数乘运算
----------------------------------------------------------------------------------------------------*/
uint8_t Matrix_Num_Mulltiplication(Matrix_Struct *A_Matrix,int16_t num)
{
uint16_t i,j;
if((A_Matrix->Row==0)||(A_Matrix->Line==0)) return 0;
for(i=0;i<(A_Matrix->Row);i++)
{
for(j=0;j<(A_Matrix->Line);j++)
{
A_Matrix->data[i][j]=A_Matrix->data[i][j]*num;
}
}
return 1;
}
/*---------------------------------------------------------------------------------------------------
函数名称:Matrix_Mullt_Matrix
输入参数:*A_Matrix:相加矩阵A的指针
*B_Matrix:相加矩阵B的指针
*C_Matrix:矩阵相乘后得到矩阵C的指针
返回参数:1:成功 2:矩阵格式不正确
函数功能:矩阵的乘法运算
----------------------------------------------------------------------------------------------------*/
uint8_t Matrix_Mullt_Matrix(Matrix_Struct *A_Matrix,Matrix_Struct *B_Matrix,Matrix_Struct *C_Matrix)
{
uint16_t c_row,c_line,i;
if(A_Matrix->Line!=B_Matrix->Row) return 0;
for(c_row=0;c_row<A_Matrix->Row;c_row++) //矩阵C的第n行
{
for(c_line=0;c_line<(B_Matrix->Line);c_line++) //矩阵C的第m列
{
for(i=0;i<A_Matrix->Row;i++)
{
C_Matrix->data[c_row][c_line]+=A_Matrix->data[c_row][i]+A_Matrix->data[i][c_line]; //矩阵C的第n行第m列有A矩阵的第n行元素和B矩阵的第m列元素的乘积相加
}
}
}
C_Matrix->Row=A_Matrix->Row;
C_Matrix->Line=B_Matrix->Line;
return 1;
}