C語言實現矩陣運算

2021-09-26 20:56:20 字數 1836 閱讀 2214

最近在學習機械人運動控制學,用到了矩陣運算,並用c語言實現之

首先宣告該**在ubuntu18.04下執行通過, 如若在windows下執行失敗請考慮編譯器版本問題

乙個矩陣最基本的有行數line,列數row和 行數乘以列數個資料(row*line), 所以用乙個最基本的結構體變數來表示乙個矩陣;

矩陣的結構體:

typedef struct 

matrix;

這樣在建立乙個矩陣的時候只需要分配row,line和data的記憶體就好.

然後…好像也沒啥好說的… 直接根據所學矩陣的基本運算只是寫**就好…

#include #include #include double value = ;

double value2 = ;

typedef struct

matrix;

matrix* initmatrix(matrix *matrix,int row,int line); //初始化矩陣

void valuematrix(matrix *matrix,double *array); //給乙個矩陣賦值

int sizematrix(matrix *matrix); //獲得乙個矩陣的大小

void freematrix(matrix *matrix); //釋放乙個矩陣

void copymatrix(matrix *matrix_a, matrix *matrix_b); //複製乙個矩陣的值

void printmatrix(matrix *matrix); //列印乙個矩陣

//矩陣的基本運算

matrix* addmatrix(matrix *matrix_a,matrix *matrix_b); //矩陣的加法

matrix* mulmatrix(matrix *matrix_a,matrix *matrix_b); //矩陣的乘法

void transmatrix(matrix *matrix); //條件為方陣

int main(int argc,char* ar**)

matrix* initmatrix(matrix *matrix,int row,int line) //初始化乙個矩陣

else

return null;

} void valuematrix(matrix *matrix,double *array) //給矩陣賦值

}int sizematrix(matrix *matrix)

void freematrix(matrix *matrix)

void copymatrix(matrix *matrix_a, matrix *matrix_b)

void printmatrix(matrix *matrix)

}//加法

matrix* addmatrix(matrix *matrix_a,matrix *matrix_b)

} return matrix_c;

} else }

//乘法

matrix* mulmatrix(matrix *matrix_a,matrix *matrix_b)

}} return matrix_c;

} else }

//矩陣轉置

void transmatrix(matrix *matrix) //條件為方陣

} }else

}

恩…都是**…盡情享用吧!

C語言實現矩陣相乘

介紹了c語言實現矩陣相乘的常見演算法,並考慮優化程式,提高效能介紹了改進的演算法。1.矩陣相乘 矩陣相乘應滿足的條件 1 矩陣a的列數必須等於矩陣b的行數,矩陣a與矩陣b才能相乘 2 矩陣c的行數等於矩陣a的行數,矩陣c的列數等於矩陣b的列數 3 矩陣c中第i行第j列的元素等於矩陣a的第i行元素與矩...

C語言實現矩陣相乘

分析 首先我們可以根據題意寫出函式頭。可以定為void matrixmutiply int m,int n,int p,long lmatrix1 max max long lmatrix2 max max long lmatrixresult max max 其中lmatrix1和lmatrix2...

C語言實現矩陣乘法

產生a 5行4列 b 4行3列 兩個隨機矩陣,每個元素是 10,10 之間的隨機整數並列印出來,列印出它們的乘積c矩陣。要求矩陣用 分隔開,以a,b,c的順序列印,各行對齊。include stdafx.h include include include include pragma warning...