C 實現基本的矩陣數學庫

2021-08-11 00:14:25 字數 2129 閱讀 3031

先給出******matrix.cs的開頭,定義總行數、總列數、所有資料(double型別)

using system;

using system.io;

namespace neuraldefs.matrix

public int column

public double[,] data

其中用了imatrix矩陣來組織,因為我還寫了稀疏矩陣的。關於這個介面在介紹稀疏矩陣時候再寫

1、首先實現簡單矩陣的最基本功能——賦值和輸出

我經常用csv格式的檔案,用自然方式儲存和檢視矩陣

public ******matrix(int row, int col)}}

public ******matrix(string filename)

srcol.close();

// count rows

row = 0;

var srrow = new streamreader(filename);

while (srrow.readline() != null)

srrow.close();

// init matrix

data = new double[row, column];

// fill matrix

var srdata = new streamreader(filename);

var currow = 0;

string line;

while ((line = srdata.readline()) != null)

currow++;

}srdata.close();

}public void writeto(string path)

sw.close();

fs.close();

}

2、用索引器取下標

public double this[int row, int column]

set

}

3、隨機化(用於神經網路賦初值等用途)

public void randomize()

}}

4、取某行

public ******matrix rowvector(int row)

return result;

}

5、減法

public static ******matrix operator -(******matrix a, ******matrix b)

}return minus;

}

6、範數

public static double norm2(******matrix a)

}return math.sqrt(norm);

}

7、連線兩個向量

public static ******matrix link(******matrix vector1, ******matrix vector2)

for (var i = 0; i < vector2.row; i++)

return result;

}

8、單元素矩陣

public static ******matrix singlevaluematrix(double val)

};}

9、絕對值最大元

public static double maxabsmember(******matrix a)

return max;

}

10、矩陣轉置

public static ******matrix transpose(******matrix a)

}return result;

}

矩陣的基本運算(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 變幻的矩陣 矩陣類 實現矩陣的基本變換

矩陣類 class matrix 根據行 列返回矩陣元素 getitem r,c 根據行 列設定矩陣元素 setitem r,c,item 換行 swaprow r1,r2 按行遍歷矩陣元素,返回元素item,行r,列c roweach callback 按豎遍歷矩陣元素,返回元素item,行r,列...

數學庫的基本函式

建議標頭檔案 include 下面是數學庫中一些經常容易用到的函式 1.絕對值 不同數值型別的對應的絕對值函式 標頭檔案 1 abs int 整數 include 2 fabs double 浮點數 include 3 labs long 長整型 abs 和fabs 的標頭檔案是不同的,2.log函...