资源简介

矩阵的运算,包含加法、数乘、两个矩阵相乘。在kile环境下编写,单片机编程直接可用。C编写。包含h文件和C文件。

资源截图

代码片段和文件信息

#include “Matrix.h“
/*---------------------------------------------------------------------------------------------------
函数名称:Matrix_Add
输入参数:*A_Matrix:相加矩阵A的指针
*A_Matrix:相加矩阵B的指针
*A_Matrix:求和矩阵C的指针
返回参数:1:成功 2:矩阵格式不正确
函数功能:两个矩阵相加
----------------------------------------------------------------------------------------------------*/
uint8_t Matrix_Add(Matrix_Struct *A_MatrixMatrix_Struct *B_MatrixMatrix_Struct *C_Matrix)
{
uint16_t ij;
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_Matrixint16_t num)
{
uint16_t ij;
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_MatrixMatrix_Struct *B_MatrixMatrix_Struct *C_Matrix)
{
uint16_t c_rowc_linei;
if(A_Matrix->Line!=B_Matrix->Row) return 0;
for(c_row=0;c_rowRow;c_row++) //矩阵C的第n行
{
for(c_line=0;c_line<(B_Matrix->Line);c_line++) //矩阵C的第m列
{
for(i=0;iRow;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;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         518  2016-12-20 00:10  Matrix.h
     文件        2606  2016-12-20 00:35  Matrix.c

评论

共有 条评论