資源簡介
矩陣的運算,包含加法、數乘、兩個矩陣相乘。在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
評論
共有 條評論