create_matrixT_create_matrixCreateMatrixCreateMatrixcreate_matrix创建矩阵(算子)
名称
create_matrixT_create_matrixCreateMatrixCreateMatrixcreate_matrix — 创建一个矩阵。
签名
void CreateMatrix(const HTuple& Rows, const HTuple& Columns, const HTuple& Value, HTuple* MatrixID)
void HMatrix::HMatrix(Hlong Rows, Hlong Columns, const HTuple& Value)
void HMatrix::HMatrix(Hlong Rows, Hlong Columns, double Value)
void HMatrix::CreateMatrix(Hlong Rows, Hlong Columns, const HTuple& Value)
void HMatrix::CreateMatrix(Hlong Rows, Hlong Columns, double Value)
static void HOperatorSet.CreateMatrix(HTuple rows, HTuple columns, HTuple value, out HTuple matrixID)
public HMatrix(int rows, int columns, HTuple value)
public HMatrix(int rows, int columns, double value)
void HMatrix.CreateMatrix(int rows, int columns, HTuple value)
void HMatrix.CreateMatrix(int rows, int columns, double value)
def create_matrix(rows: int, columns: int, value: MaybeSequence[Union[int, float, str]]) -> HHandle
描述
算子 create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrixcreate_matrix 创建一个具有 RowsRowsRowsRowsrowsrows 行数和 ColumnsColumnsColumnsColumnscolumnscolumns 列数的新 Matrix 并返回矩阵句柄 MatrixIDMatrixIDMatrixIDMatrixIDmatrixIDmatrix_id。可通过算子
get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrixget_full_matrix 等方式访问该矩阵的元素。参数 ValueValueValueValuevaluevalue 可为字符串或浮点数/整数组成的元组。整数将自动转换为浮点数。
如果 ValueValueValueValuevaluevalue = 'identity'"identity""identity""identity""identity""identity",则 RowsRowsRowsRowsrowsrows 和 ColumnsColumnsColumnsColumnscolumnscolumns 必须具有相同值,此时将创建单位矩阵。
示例:
RowsRowsRowsRowsrowsrows = 3,
ColumnsColumnsColumnsColumnscolumnscolumns = 3,
ValueValueValueValuevaluevalue = 'identity'"identity""identity""identity""identity""identity"
如果参数 ValueValueValueValuevaluevalue 包含单一值,则矩阵所有元素均填入该值。
示例:
RowsRowsRowsRowsrowsrows = 3,
ColumnsColumnsColumnsColumnscolumnscolumns = 3,
ValueValueValueValuevaluevalue = 7
如果 ValueValueValueValuevaluevalue 包含与主对角线元素数量相同的值,则主对角线所有元素均设为参数
ValueValueValueValuevaluevalue 的值(即 ValueValueValueValuevaluevalue 中元素数量与主对角线元素数量一致)。
示例:
RowsRowsRowsRowsrowsrows = 3,
ColumnsColumnsColumnsColumnscolumnscolumns = 4,
ValueValueValueValuevaluevalue = [3,7,1]
也可为矩阵所有元素设置不同值。此时参数 ValueValueValueValuevaluevalue 必须按行优先顺序存储所有值(即按行排列)。此外,ValueValueValueValuevaluevalue 的元素数量必须与矩阵总元素数,即 RowsRowsRowsRowsrowsrows
ColumnsColumnsColumnsColumnscolumnscolumns 完全一致。
示例:
RowsRowsRowsRowsrowsrows = 3,
ColumnsColumnsColumnsColumnscolumnscolumns = 3,
ValueValueValueValuevaluevalue = [3,1,-2,-5,7,2,-9,-4,1]
需注意示例中输出矩阵值的含义存在差异:若值显示为整数(如 0 或 1 ),则该元素值即为该特定数值;若数值显示为浮点数(如 0.0 或 1.0 ),则该值由算子计算得出。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
RowsRowsRowsRowsrowsrows (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
矩阵的行数。
默认值:
3
建议值:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 50, 100
限制:
Rows >= 1
ColumnsColumnsColumnsColumnscolumnscolumns (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
矩阵的列数。
默认值:
3
建议值:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 50, 100
限制:
Columns >= 1
ValueValueValueValuevaluevalue (输入控制) number(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
用于初始化矩阵元素的值。
默认值:
0
建议值:
0, 1, 'identity'"identity""identity""identity""identity""identity"
MatrixIDMatrixIDMatrixIDMatrixIDmatrixIDmatrix_id (输出控制) matrix → HMatrix, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
矩阵句柄。
结果
如果参数有效,算子 create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrixcreate_matrix 返回值 2 (H_MSG_TRUE)。如有必要,则抛出异常。
可能的后继
set_full_matrixset_full_matrixSetFullMatrixSetFullMatrixSetFullMatrixset_full_matrix,
clear_matrixclear_matrixClearMatrixClearMatrixClearMatrixclear_matrix
模块
基础