Init
Khởi tạo một ma trận hoặc một vector.
cpp
void matrix::Init(
const ulong rows, // số hàng
const ulong cols, // số cột
func_name init_func=NULL, // hàm khởi tạo được đặt trong một phạm vi hoặc phương thức tĩnh của lớp
... parameters
);
void vector::Init(
const ulong size, // kích thước vector
func_name init_func=NULL, // hàm khởi tạo được đặt trong một phạm vi hoặc phương thức tĩnh của lớp
... parameters
);
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Tham số
rows
[in] Số hàng.
cols
[in] Số cột.
func_name
[in] Hàm khởi tạo.
...
[in] Các tham số của hàm khởi tạo.
Giá trị trả về
Không có giá trị trả về.
Ví dụ
cpp
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;
}
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
int size_m=3, size_k=4;
matrix m(size_m,size_k,MatrixArange,-2.,0.1); // đầu tiên một ma trận chưa được khởi tạo kích thước size_m x size_k được tạo,
Print("matrix m \n",m); // sau đó hàm MatrixArange với các tham số được liệt kê tại khởi tạo được gọi
matrixf m_float(5,5,MatrixArange,-2.f,0.1f); // sau khi một ma trận kiểu float được tạo, hàm MatrixArange được gọi
Print("matrix m_float \n",m_float);
vector v(size_k,VectorArange,-10.0); // sau khi một vector được tạo, VectorArange với một tham số được gọi; tham số thứ hai là mặc định
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]
*/
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43