template<typename T> void MatrixArange(matrix<T> &mat,T value=0.0,T step=1.0) { for(ulong i=0; i<mat.Rows(); i++) { for(ulong j=0; j<mat.Cols(); j++,value+=step) mat[i][j]=value; } } template<typename T> void VectorArange(vector<T> &vec,T value=0.0,T step=1.0) { for(ulong i=0; i<vec.Size(); i++,value+=step) vec[i]=value; } //+------------------------------------------------------------------+ //| 脚本程序 start 函数 | //+------------------------------------------------------------------+ void OnStart() { //--- int size_m=3, size_k=4; matrix m(size_m,size_k,MatrixArange,-2.,0.1); // 首先创建一个大小为 size_ m x size_k 的未初始化矩阵, Print("matrix m \n",m); // 然后调用初始化清单列出的带参数的 MatrixArange 函数 matrixf m_float(5,5,MatrixArange,-2.f,0.1f); // 创建浮点型矩阵后,调用 MatrixArange 函数 Print("matrix m_float \n",m_float); vector v(size_k,VectorArange,-10.0); // 创建一个向量后,会调用带有一个参数的 VectorArange;其第二个参数采用默认值 Print("vector v \n",v); /* matrix m [[-2,-1.9,-1.8,-1.7] [-1.6,-1.5,-1.399999999999999,-1.299999999999999] [-1.199999999999999,-1.099999999999999,-0.9999999999999992,-0.8999999999999992]] matrix m_float [[-2,-1.9,-1.8,-1.6999999,-1.5999999] [-1.4999999,-1.3999999,-1.2999998,-1.1999998,-1.0999998] [-0.99999976,-0.89999974,-0.79999971,-0.69999969,-0.59999967] [-0.49999967,-0.39999968,-0.29999968,-0.19999969,-0.099999689] [3.1292439e-07,0.10000031,0.20000032,0.30000031,0.4000003]] vector v [-10,-9,-8,-7] */ } |