set_diagonal_matrixT_set_diagonal_matrixSetDiagonalMatrixSetDiagonalMatrixset_diagonal_matrix (算子)

名称

set_diagonal_matrixT_set_diagonal_matrixSetDiagonalMatrixSetDiagonalMatrixset_diagonal_matrix — 设置矩阵的对角元素。

签名

set_diagonal_matrix( : : MatrixID, VectorID, Diagonal : )

Herror T_set_diagonal_matrix(const Htuple MatrixID, const Htuple VectorID, const Htuple Diagonal)

void SetDiagonalMatrix(const HTuple& MatrixID, const HTuple& VectorID, const HTuple& Diagonal)

void HMatrix::SetDiagonalMatrix(const HMatrix& VectorID, Hlong Diagonal) const

static void HOperatorSet.SetDiagonalMatrix(HTuple matrixID, HTuple vectorID, HTuple diagonal)

void HMatrix.SetDiagonalMatrix(HMatrix vectorID, int diagonal)

def set_diagonal_matrix(matrix_id: HHandle, vector_id: HHandle, diagonal: int) -> None

描述

算子 set_diagonal_matrixset_diagonal_matrixSetDiagonalMatrixSetDiagonalMatrixSetDiagonalMatrixset_diagonal_matrix overwrites the diagonal elements of the Matrix with the elements of the matrix Vector. The matrices are defined by their matrix handles MatrixIDMatrixIDMatrixIDMatrixIDmatrixIDmatrix_id and VectorIDVectorIDVectorIDVectorIDvectorIDvector_id. The matrix Vector must have one column and one row, n columns and one row or one column and n rows. n is the number of elements to be set in the Matrix (see below). If the matrix Vector has one column and one row, i.e., the matrix has one value, each element of the diagonal of the Matrix is overwritten by this value. Otherwise, the diagonal is overwritten by the elements of the matrix Vector.

If DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal = 0, the main diagonal of the Matrix is overwritten. The number n = min(number of rows of Matrix, number of columns of Matrix).

Example 1:

Example 2:

If DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal is positive, the DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal-th super-diagonal of Matrix is overwritten. For the example 1 the number n = min(number of rows of Matrix, parameter DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal). For the example 2 the number n = min(number of rows of Matrix, number of columns of Matrix).

Example 1:

Example 2:

If DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal is negative, the DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal-th sub-diagonal of Matrix is overwritten. For the example 1 the number n = min(number of columns of Matrix, parameter DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal). For the example 2 the number n = min(number of rows of Matrix, number of columns of Matrix).

Example 1:

Example 2:

执行信息

此算子修改后续输入参数的状态:

在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。

参数

MatrixIDMatrixIDMatrixIDMatrixIDmatrixIDmatrix_id (输入控制,状态被修改)  matrix HMatrix, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

输入矩阵的矩阵句柄。

VectorIDVectorIDVectorIDVectorIDvectorIDvector_id (输入控制)  matrix HMatrix, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Matrix handle containing the diagonal elements to be set.

DiagonalDiagonalDiagonalDiagonaldiagonaldiagonal (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Position of the diagonal.

默认值: 0

建议值: -20, -10, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 10, 20

结果

如果参数有效,算子 set_diagonal_matrixset_diagonal_matrixSetDiagonalMatrixSetDiagonalMatrixSetDiagonalMatrixset_diagonal_matrix 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。

可能的前趋

create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrixcreate_matrix

可能的后继

get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrixget_full_matrix, get_value_matrixget_value_matrixGetValueMatrixGetValueMatrixGetValueMatrixget_value_matrix

另见

get_diagonal_matrixget_diagonal_matrixGetDiagonalMatrixGetDiagonalMatrixGetDiagonalMatrixget_diagonal_matrix

模块

基础