在C 中實現矩陣運算

2021-06-08 17:38:42 字數 3323 閱讀 2475

在c#中實現矩陣運算

環境:

主機:xp

開發環境:vs2008

功能:

在c#中實現矩陣運算

源**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

//矩陣資料結構

//二維矩陣

class _matrix

public _matrix(int mm,int nn)

//設定m

public void set_mn(int mm,int nn)

//設定m

public void set_m(int mm)

//設定n

public void set_n(int nn)

//初始化

public void init_matrix()

//釋放

public void free_matrix()

//讀取i,j座標的資料

//失敗返回-31415,成功返回值

public float read(int i,int j)

//return *(arr + i * n + j);

return arr[i * n + j];

} //寫入i,j座標的資料

//失敗返回-1,成功返回1

public int write(int i,int j,float val)

arr[i * n + j] = val;

return 1;

} };//二維運算類

class _matrix_calc

//c = a + b

//成功返回1,失敗返回-1

public int add(ref _matrix a,ref _matrix b,ref _matrix c)

//運算

for (i = 0;i < c.m;i++)

} return 1;

} //c = a - b

//成功返回1,失敗返回-1

public int subtract(ref _matrix a,ref _matrix b, ref _matrix c)

//運算

for (i = 0;i < c.m;i++)

} return 1;

} //c = a * b

//成功返回1,失敗返回-1

public int multiply(ref _matrix a, ref _matrix b, ref _matrix c)

//運算

for (i = 0;i < c.m;i++)

c.write(i,j,temp);

} }

return 1;

} //行列式的值,只能計算2 * 2,3 * 3

//失敗返回-31415,成功返回值

public float det(ref _matrix a)

//運算

if (a.m == 2)

else

return value;

}//求轉置矩陣,b = at

//成功返回1,失敗返回-1

public int transpos(ref _matrix a,ref _matrix b)

//運算

for (i = 0;i < b.m;i++)

} return 1;

} //求逆矩陣,b = a^(-1)

//成功返回1,失敗返回-1

public int inverse(ref _matrix a, ref _matrix b)

/* //如果是2維或者3維求行列式判斷是否可逆

if (a.m == 2 || a.m == 3)

} */

//增廣矩陣m = a | b初始化

m.init_matrix();

for (i = 0;i < m.m;i++)

else

else

} }

} //高斯消元

//變換下三角

for (k = 0;k < m.m - 1;k++)

} if (i >= m.m)

else

} }

//消元

for (i = k + 1;i < m.m;i++)

} }

//變換上三角

for (k = m.m - 1;k > 0;k--)

} if (i >= m.m)

else

} }

//消元

for (i = k - 1;i >= 0;i--)

} }

//將左邊方陣化為單位矩陣

for (i = 0;i < m.m;i++)

} }

//求得逆矩陣

for (i = 0;i < b.m;i++)

} //釋放增廣矩陣

m.free_matrix();

return 1;

} };

namespace test

} for (i = 0;i < m2.m;i++)

}m_c.multiply(ref m1,ref m2, ref m3);

= convert.tostring(m3.read(1,1));

output.text = convert.tostring(m_c.det(ref m1));}/*

private void button1_click(object sender, eventargs e)

private void textbox1_textchanged(object sender, eventargs e)

* */

}}

C 中矩陣運算的實現

這兩天圖形學的實驗對三維圖形進行放縮平移投影,裡面需要用到一些矩陣的運算,於是需要動手寫乙個矩陣運算的類cmatrix mfc中進行開發所以第乙個字母是c 最好做的和普通的數字預算一樣簡單。由於在mfc程式中圖形變化是不斷進行的,需要大量矩陣預算,並且程序會一直保持執行狀態,所以矩陣預算要進行手動記...

矩陣的基本運算(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 所以用乙個最基本的結構體變數來表示乙個矩陣 矩陣的結構...