create_matrix ( : : Rows, Columns, Value : MatrixID )
创建一个新矩阵,Rows
行,Columns
列,Value
数值,MatrixID
矩阵句柄。
如果Value=’identity’,生成单位矩阵:
如果Value=某个值,整个矩阵都填充为这个值:
如果Value包含多个值,且值的数量等于矩阵的秩,则对角线将填充为Value:
如果Value包含多个值,且值的数量等于矩阵中元素的个数(Rows×Columns),则Value逐行填充矩阵:
copy_matrix ( : : MatrixID : MatrixCopyID )
复制矩阵,MatrixID
源矩阵句柄,MatrixCopyID
复制的矩阵句柄。
repeat_matrix ( : : MatrixID, Rows, Columns : MatrixRepeatedID )
重复矩阵,MatrixID
源矩阵句柄,Rows
重复行,Columns
重复列,MatrixRepeatedID
重复后的矩阵句柄。把源矩阵复制Rows
×Columns
次,赋值给MatrixRepeatedID
。
Rows=3,Columns =4:
clear_matrix ( : : MatrixID : )
释放矩阵占用内存。调用算子后,矩阵不再可用,矩阵句柄MatrixID变为非法。
示例:
create_matrix (2, 2, [1,2,3,4], MatrixID)
clear_matrix (MatrixID)
get_diagonal_matrix ( : : MatrixID, Diagonal : VectorID )
获取对角线元素,并产生新向量,MatrixID源矩阵句柄,Diagonal 对角值,VectorID 新向量矩阵句柄。
如果Diagonal =0,则返回主对角线元素:
如果Diagonal 为正值,则返回右上角元素:
如果Diagonal 为负值,则返回左下角元素:
set_diagonal_matrix ( : : MatrixID, VectorID, Diagonal : )
用向量VectorID
的值,重写矩阵MatrixID
的对角元素,Diagonal
对角值。向量VectorID
必须为一行或一列。
如果Diagonal =0,则覆盖主对角元素:
如果VectorID仅包含一个元素,则对角线元素均覆盖为该元素:
如果Diagonal为正值,则覆盖右上角元素:
如果Diagonal为负值,则覆盖左下角元素:
get_full_matrix ( : : MatrixID : Values )
返回矩阵的所有元素,MatrixID
矩阵句柄,Values
浮点型元组,逐行保存。
set_full_matrix ( : : MatrixID, Values : )
将元组Values 的值赋给矩阵句柄MatrixID。
Note:效果与 create_matrix相同,优势在于重用不再用的矩阵。
get_sub_matrix ( : : MatrixID, Row, Column, RowsSub,ColumnsSub : MatrixSubID )
复制MatrixID
的子矩阵,产生新矩阵MatrixSubID
,子矩阵由左上角 (Row
,Column
) 和子矩阵维度(RowsSub
, ColumnsSub
)决定。
ATT:需要满足条件:0 <= Row
set_sub_matrix ( : : MatrixID, MatrixSubID, Row, Column : )
将矩阵MatrixSubID
作为子矩阵重写MatrixID
,左上角坐标(Row
, Column
)。
ATT:需要满足条件:0 <= Row
get_value_matrix ( : : MatrixID, Row, Column : Value )
返回矩阵MatrixID
中(Row
,Column
)的元素,赋值为元组Value
。
set_value_matrix ( : : MatrixID, Row, Column, Value : )
将元组Value
的值赋值给矩阵MatrixID
的(Row
,Column
)。
determinant_matrix ( : : MatrixID, MatrixType : Value )
计算矩阵的行列式。MatrixID
矩阵句柄,MatrixType
矩阵类型,Value
结果。
MatrixType
矩阵类型是可选的:‘general’ 常规, 'symmetric’对称矩阵, ‘positive_definite’ 是正定矩阵, ‘tridiagonal’ 三对角矩阵, ‘upper_triangular’ 上三角矩阵, ‘permuted_upper_triangular’ for permuted upper triangular, ‘lower_triangular’ 下三角矩阵, ‘permuted_lower_triangular’ for permuted lower triangular matrices。
Value
= det Matrix.
[补充线性代数知识
]:
一个n×n的方阵A的行列式记为det(A)或者|A|,一个2×2矩阵的行列式可表示如下:
一个n×n矩阵的行列式等于其任意行(或列)的元素与对应的代数余子式乘积之和,即
例如:
get_size_matrix ( : : MatrixID : Rows, Columns )
获得矩阵的大小,返回矩阵MatrixID
的行数Rows
和列数Columns
。
max_matrix ( : : MatrixID, MaxType : MatrixMaxID )
返回矩阵MatrixID
的最大值MatrixMaxID
,最大值类型MaxType
可以是’columns’,’rows’,’full’。
如果MaxType=’columns’,返回各列的最大值:
如果MaxType=’rows’,返回各行的最大值:
如果MaxType=’full’,返回矩阵的最大值:
mean_matrix ( : : MatrixID, MeanType : MatrixMeanID )
返回矩阵MatrixID
的平均值MatrixMeanID
,平均值值类型MeanType
可以是’columns’,’rows’,’full’。
如果MeanType=’columns’,返回各列的平均值:
如果MeanType=’rows’,返回各行的平均值:
如果MeanType=’full’,返回矩阵的平均值:
min_matrix ( : : MatrixID, MinType : MatrixMinID )
返回矩阵MatrixID
的最大值MatrixMinID
,最小值类型MinType
可以是’columns’,’rows’,’full’。
如果MinType=’columns’,返回各列的最小值:
norm_matrix ( : : MatrixID, NormType : Value )
矩阵MatrixID
的范数Value
,范数类型NormType
。
如果NormType=’frobenius-norm’,计算公式为:
如果NormType=’infinity-norm’,计算公式为:
sum_matrix ( : : MatrixID, SumType : MatrixSumID )
返回矩阵MatrixID
的和MatrixSumID
,元素和的类型SumType
可以是’columns’,’rows’,’full’。
如果SumType=’columns’,返回各列元素的和:
write_matrix( : : MatrixID, FileFormat, FileName : )
以格式FileFormat
写矩阵MatrixID
至文件FileName
。格式FileFormat
有两种’ascii’, ‘binary’,文件名FileName
尾缀为’mtx’。
read_matrix( : : FileName : MatrixID)
读取由write_matrix算子保存的文件,赋值给矩阵MatrixID。文件名FileName
尾缀为’mtx’。
serialize_matrix( : : MatrixID : SerializedItemHandle)
序列化矩阵,矩阵句柄MatrixID
序列化后为SerializedItemHandle
。与deserialize_matrix算子成对出现。
deserialize_matrix( : : SerializedItemHandle : MatrixID)
反序列化SerializedItemHandle
为矩阵MatrixID
。与serialize_matrix算子成对出现。