先給出******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函...