C 中矩陣運算的實現

2021-08-10 03:50:46 字數 2151 閱讀 2553

這兩天圖形學的實驗對三維圖形進行放縮平移投影,裡面需要用到一些矩陣的運算,於是需要動手寫乙個矩陣運算的類cmatrix(mfc中進行開發所以第乙個字母是c)。

最好做的和普通的數字預算一樣簡單。

由於在mfc程式中圖形變化是不斷進行的,需要大量矩陣預算,並且程序會一直保持執行狀態,所以矩陣預算要進行手動記憶體釋放,並且不要進行無用操做

例如a+b,a*b之類的操作,因為這些運算都會在堆上生成乙個額外的物件,正確的操作應該是c=a+b,並且在必要的時候將c釋放掉

可以直接輸入輸出矩陣例如cout<>b,直接訪問矩陣r行c列上的值例如a[r][c],常用的運算子都進行了過載例如自增自減;

沒有實現矩陣的除法github位址

標頭檔案 cmatrix.h:

#pragma once

#include

using namespace std;

class cmatrix

//過載輸入輸出

friend ostream & operator<<(ostream &out, cmatrix &obj);

friend istream & operator >> (istream &in, cmatrix &matrix);

void setrow(int row, int v);

//將第row行賦值v

void setcolumn(int column, int v);

//將第column列賦值v

void setall(int v);

//將矩陣全部賦值為v

inline int** getarr()        //獲取二維陣列頭指標

cmatrix& turn();                            //轉置矩陣

void freearr(int** arr,int r);};

原始檔 #include "stdafx.h"

#include "cmatrix.h"

cmatrix::cmatrix()

cmatrix::cmatrix(const cmatrix & matrix)

cmatrix::cmatrix(int n)

cmatrix::cmatrix(int n, int m)

cmatrix::~cmatrix()

cmatrix & cmatrix::operator+(const cmatrix & matrix)

cmatrix & cmatrix::operator-(const cmatrix & matrix)

cmatrix & cmatrix::operator*(const cmatrix & matrix)

cmatrix & cmatrix::operator*(int v)

cmatrix & cmatrix::operator/=(int v)

cmatrix & cmatrix::operator/(int v)

cmatrix& cmatrix::operator=(const cmatrix & matrix)

cmatrix& cmatrix::operator +=(const cmatrix & matrix)

cmatrix & cmatrix::operator*=(const cmatrix & matrix)

cmatrix& cmatrix::operator -=(const cmatrix & matrix)

cmatrix& cmatrix::operator*=(int v)

bool cmatrix::operator==(const cmatrix & matrix)

void cmatrix::setrow(int row, int v)

void cmatrix::setcolumn(int column, int v)

void cmatrix::setall(int v)

cmatrix & cmatrix::turn()

ostream & operator<<(ostream & out, cmatrix & matrix)

return out;

}istream & operator>>(istream & in, cmatrix & matrix)

void cmatrix::freearr(int** arr,int r)

在C 中實現矩陣運算

在c 中實現矩陣運算 環境 主機 xp 開發環境 vs2008 功能 在c 中實現矩陣運算 源 using system using system.collections.generic using system.componentmodel using system.data using syst...

矩陣的基本運算(C實現)

使用函式來實現對矩陣的基本輸入輸出以及求和 相乘等運算。include define n 10 void print matrix float a,int m,int n 列印矩陣 void input matrix float a,int m,int n 輸入矩陣 void multiply ma...

C語言實現矩陣運算

最近在學習機械人運動控制學,用到了矩陣運算,並用c語言實現之 首先宣告該 在ubuntu18.04下執行通過,如若在windows下執行失敗請考慮編譯器版本問題 乙個矩陣最基本的有行數line,列數row和 行數乘以列數個資料 row line 所以用乙個最基本的結構體變數來表示乙個矩陣 矩陣的結構...