类 BlockFieldMatrix<T extends FieldElement<T>>
- 类型参数:
-
T
- 字段元素的类型
- 所有已实现的接口:
-
Serializable
,AnyMatrix
,FieldMatrix<T>
,FieldBlendable<FieldMatrix<T>,
T>
此实现专为缓存友好而设计。方块块存储为小数组,并允许以行主导方向和列主导方向高效遍历数据,一次一个块。这极大地提高了使用交叉方向循环的算法(如乘法或转置)的性能。
方块块的大小是一个静态参数。它可以根据目标计算机处理器的缓存大小进行调整。作为经验法则,它应该是允许同时缓存三个块的最大值(例如,对于矩阵乘法是必需的)。默认值是使用36x36块。
常规块表示BLOCK_SIZE
x BLOCK_SIZE
方块。右侧和底部可能较小以适应矩阵维度。方块块以行主导顺序展开在单维数组中,因此对于常规块,它们是BLOCK_SIZE
2元素长。块本身以行主导顺序组织。
例如,对于36x36的块大小,100x60矩阵将存储在6个块中。块0将是一个Field[1296]数组,保存左上角的36x36方块,块1将是一个Field[1296]数组,保存上中心的36x36方块,块2将是一个Field[1008]数组,保存上右侧的36x28矩形,块3将是一个Field[864]数组,保存下左侧的24x36矩形,块4将是一个Field[864]数组,保存下中心的24x36矩形,块5将是一个Field[672]数组,保存下右侧的24x28矩形。
与简单将矩阵映射到java数组相比,布局复杂性开销对于小矩阵来说是可以忽略的(约为1%)。缓存效率带来的收益可使中等到大型矩阵的性能提高多达3倍。
- 另请参阅:
-
字段概要
-
构造器概要
构造器说明BlockFieldMatrix
(int rows, int columns, T[][] blockData, boolean copyArray) 创建一个新的稠密矩阵,从块布局数据中复制条目。BlockFieldMatrix
(Field<T> field, int rows, int columns) 创建一个具有提供的行和列维度的新矩阵。BlockFieldMatrix
(T[][] rawData) 创建一个新的稠密矩阵,从原始布局数据中复制条目。 -
方法概要
修饰符和类型方法说明add
(BlockFieldMatrix<T> m) 计算this
和m
的和。add
(FieldMatrix<T> m) 计算此矩阵和m的和。void
addToEntry
(int row, int column, T increment) 更改指定行和列中的条目。copy()
复制此矩阵的(深层)副本。static <T extends FieldElement<T>>
T[][]createBlocksLayout
(Field<T> field, int rows, int columns) 在块布局中创建一个数据数组。createMatrix
(int rowDimension, int columnDimension) 创建一个与实例具有相同类型的新FieldMatrix
,具有提供的行和列维度。T[]
getColumn
(int column) 将列号为col
的条目作为数组返回。int
返回矩阵中的列数。getColumnMatrix
(int column) 将列号为column
的条目作为列矩阵返回。getColumnVector
(int column) 将列号为column
的条目作为向量返回。T[][]
getData()
将矩阵条目作为二维数组返回。getEntry
(int row, int column) 返回指定行和列中的条目。T[]
getRow
(int row) 将行号为row
的条目作为数组返回。int
返回矩阵中的行数。getRowMatrix
(int row) 将行号为row
的条目作为行矩阵返回。getRowVector
(int row) 将行号为row
的条目作为向量返回。getSubMatrix
(int startRow, int endRow, int startColumn, int endColumn) 获取子矩阵。返回this
与m
的后乘结果。multiply
(FieldMatrix<T> m) 将此矩阵与m
后乘。void
multiplyEntry
(int row, int column, T factor) 更改指定行和列中的条目。返回this
与m^T
的后乘结果。返回this
与m^T
的后乘结果。T[]
返回此与向量v
相乘的结果。T[]
preMultiply
(T[] v) 返回通过向量v
左乘此矩阵的(行)向量结果。递增此矩阵的每个条目。scalarMultiply
(T d) 将每个条目乘以d
。void
将列号为column
的条目设置为列矩阵。void
setColumnMatrix
(int column, FieldMatrix<T> matrix) 将列号为column
的条目设置为列矩阵。void
setColumnVector
(int column, FieldVector<T> vector) 将列号为column
的条目设置为向量。void
设置指定行和列中的条目。void
将行号为row
的条目设置为行矩阵。void
setRowMatrix
(int row, BlockFieldMatrix<T> matrix) 将行号为row
的条目设置为行矩阵。void
setRowMatrix
(int row, FieldMatrix<T> matrix) 将行号为row
的条目设置为行矩阵。void
setRowVector
(int row, FieldVector<T> vector) 将行号为row
的条目设置为向量。void
setSubMatrix
(T[][] subMatrix, int row, int column) 使用输入subMatrix
数组中的数据替换从(row, column)
开始的子矩阵。计算this - m
。subtract
(FieldMatrix<T> m) 将m
从此矩阵中减去。static <T extends FieldElement<T>>
T[][]toBlocksLayout
(T[][] rawData) 将原始布局的数据数组转换为块布局。返回此矩阵的转置。返回this^T
与m
的后乘结果。返回this^T
与m
的后乘结果。walkInOptimizedOrder
(FieldMatrixChangingVisitor<T> visitor) 使用最快的可能顺序访问(并可能更改)所有矩阵条目。walkInOptimizedOrder
(FieldMatrixChangingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) 使用最快的可能顺序访问(并可能更改)一些矩阵条目。使用最快的可能顺序访问(但不更改)所有矩阵条目。walkInOptimizedOrder
(FieldMatrixPreservingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) 使用最快的可能顺序访问(但不更改)一些矩阵条目。walkInRowOrder
(FieldMatrixChangingVisitor<T> visitor) 使用行顺序访问(并可能更改)所有矩阵条目。walkInRowOrder
(FieldMatrixChangingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) 使用行顺序访问(并可能更改)一些矩阵条目。walkInRowOrder
(FieldMatrixPreservingVisitor<T> visitor) 使用行顺序访问(但不更改)所有矩阵条目。walkInRowOrder
(FieldMatrixPreservingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) 使用行顺序访问(但不更改)一些矩阵条目。从类继承的方法 org.hipparchus.linear.AbstractFieldMatrix
checkAdditionCompatible, checkColumnIndex, checkMultiplicationCompatible, checkRowIndex, checkSubMatrixIndex, checkSubMatrixIndex, checkSubtractionCompatible, copySubMatrix, copySubMatrix, equals, extractField, extractField, getField, getSubMatrix, getTrace, hashCode, isSquare, operate, power, preMultiply, preMultiply, toString, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder
从接口继承的方法 org.hipparchus.linear.FieldMatrix
blendArithmeticallyWith, map, mapToSelf
-
字段详细资料
-
BLOCK_SIZE
public static final int BLOCK_SIZE块大小。- 另请参阅:
-
-
构造器详细资料
-
BlockFieldMatrix
创建一个具有提供的行和列维度的新矩阵。- 参数:
-
field
- 元素所属的字段。 -
rows
- 新矩阵中的行数。 -
columns
- 新矩阵中的列数。 - 抛出:
-
MathIllegalArgumentException
- 如果行或列维度不是正数。
-
BlockFieldMatrix
创建一个新的稠密矩阵,从原始布局数据中复制条目。输入数组必须已经是原始布局。
调用此构造函数等效于调用:
matrix = new BlockFieldMatrix<T>(getField(), rawData.length, rawData[0].length, toBlocksLayout(rawData), false);
- 参数:
-
rawData
- 新矩阵的数据,以原始布局表示。 - 抛出:
-
MathIllegalArgumentException
- 如果blockData
的形状与块布局不一致。 - 另请参阅:
-
BlockFieldMatrix
public BlockFieldMatrix(int rows, int columns, T[][] blockData, boolean copyArray) throws MathIllegalArgumentException 从块布局数据复制条目创建新的密集矩阵。输入数组必须已经是块布局。
- 参数:
-
rows
- 新矩阵的行数 -
columns
- 新矩阵的列数 -
blockData
- 新矩阵的数据 -
copyArray
- 如果为true,则将复制输入数组,否则将引用它 - 抛出:
-
MathIllegalArgumentException
- 如果blockData
的形状与块布局不一致。 -
MathIllegalArgumentException
- 如果行或列维度不是正数。 - 另请参阅:
-
-
方法详细资料
-
toBlocksLayout
public static <T extends FieldElement<T>> T[][] toBlocksLayout(T[][] rawData) throws MathIllegalArgumentException 将数据数组从原始布局转换为块布局。原始布局是直观的布局,其中第i行第j列的元素在数组元素
rawData[i][j]
中。块布局是在BlockFieldMatrix
实例中使用的布局,其中矩阵被分割为方块(除了右侧和底部可能是矩形块以适应矩阵大小),每个块存储在一个扁平化的一维数组中。此方法从原始布局中的输入数组创建一个块布局中的数组。它可用于提供
BlockFieldMatrix(int, int, FieldElement[][], boolean)
构造函数的数组参数。- 类型参数:
-
T
- 字段元素的类型。 - 参数:
-
rawData
- 原始布局中的数据数组。 - 返回:
- 包含相同条目但以块布局表示的新数据数组
- 抛出:
-
MathIllegalArgumentException
- 如果rawData
不是矩形的(不是所有行都具有相同的长度)。 - 另请参阅:
-
createBlocksLayout
public static <T extends FieldElement<T>> T[][] createBlocksLayout(Field<T> field, int rows, int columns) 创建一个块布局中的数据数组。此方法可用于创建
BlockFieldMatrix(int, int, FieldElement[][], boolean)
构造函数的数组参数。- 类型参数:
-
T
- 字段元素的类型。 - 参数:
-
field
- 元素所属的字段。 -
rows
- 新矩阵的行数。 -
columns
- 新矩阵的列数。 - 返回:
- 一个新的块布局中的数据数组。
- 另请参阅:
-
createMatrix
public FieldMatrix<T> createMatrix(int rowDimension, int columnDimension) throws MathIllegalArgumentException 创建一个与实例相同类型的新FieldMatrix
,具有提供的行和列维度。- 指定者:
-
createMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 指定者:
-
createMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
rowDimension
- 新矩阵的行数 -
columnDimension
- 新矩阵的列数 - 返回:
- 与实例相同类型的新矩阵
- 抛出:
-
MathIllegalArgumentException
- 如果行或列维度不是正数。
-
copy
对此进行(深度)复制。- 指定者:
-
copy
在接口中FieldMatrix<T extends FieldElement<T>>
- 指定者:
-
copy
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 返回:
- 此矩阵的副本。
-
add
计算此矩阵和m的和。- 指定者:
-
add
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
add
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
m
- 要添加的矩阵。 - 返回:
-
this
+m
。 - 抛出:
-
MathIllegalArgumentException
- 如果m
与this
矩阵的大小不同。
-
add
计算this
和m
的和。- 参数:
-
m
- 要添加的矩阵 - 返回:
-
this + m
- 抛出:
-
MathIllegalArgumentException
- 如果m
与this
的大小不同
-
subtract
从此矩阵中减去m
。- 指定者:
-
subtract
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
subtract
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
m
- 要减去的矩阵。 - 返回:
-
this
-m
。 - 抛出:
-
MathIllegalArgumentException
- 如果m
与this
矩阵的大小不同。
-
subtract
计算this - m
。- 参数:
-
m
- 要减去的矩阵 - 返回:
-
this - m
- 抛出:
-
MathIllegalArgumentException
- 如果m
与this
的大小不同
-
scalarAdd
递增此矩阵的每个条目。- 指定者:
-
scalarAdd
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
scalarAdd
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
d
- 要添加到每个条目的值。 - 返回:
-
d
+this
.
-
scalarMultiply
将每个条目乘以d
。- 指定者:
-
scalarMultiply
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
scalarMultiply
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
d
- 要将所有条目乘以的值。 - 返回:
-
d
*this
.
-
multiply
将此矩阵与m
进行后乘。- 指定者:
-
multiply
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
multiply
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
m
- 要进行后乘的矩阵。 - 返回:
-
this
*m
. - 抛出:
-
MathIllegalArgumentException
- 如果this
矩阵的列数不等于矩阵m
的行数。
-
multiply
返回后乘this
与m
的结果。- 参数:
-
m
- 要进行后乘的矩阵 - 返回:
-
this * m
- 抛出:
-
MathIllegalArgumentException
- 如果矩阵不兼容。
-
multiplyTransposed
public BlockFieldMatrix<T> multiplyTransposed(BlockFieldMatrix<T> m) throws MathIllegalArgumentException 返回后乘this
与m
的结果。- 参数:
-
m
- 要首先转置然后进行后乘的矩阵 - 返回:
-
this * m
- 抛出:
-
MathIllegalArgumentException
- 如果this
的列维数不等于m
的列维数 - 从以下版本开始:
- 1.3
-
multiplyTransposed
- 指定者:
-
multiplyTransposed
在接口中FieldMatrix<T extends FieldElement<T>>
- 参数:
-
m
- 要首先转置然后进行后乘的矩阵 - 返回:
-
this * m^T
- 抛出:
-
MathIllegalArgumentException
- 如果this
的列维数不等于m
的列维数
-
transposeMultiply
public BlockFieldMatrix<T> transposeMultiply(BlockFieldMatrix<T> m) throws MathIllegalArgumentException 返回后乘this^T
与m
的结果。- 参数:
-
m
- 要进行后乘的矩阵 - 返回:
-
this^T * m
- 抛出:
-
MathIllegalArgumentException
- 如果this
的列维数不等于m
的列维数 - 从以下版本开始:
- 1.3
-
transposeMultiply
- 指定者:
-
transposeMultiply
在接口中FieldMatrix<T extends FieldElement<T>>
- 参数:
-
m
- 要进行后乘的矩阵 - 返回:
-
this^T * m
- 抛出:
-
MathIllegalArgumentException
- 如果this
的列维数不等于m
的列维数
-
getData
将矩阵条目作为二维数组返回。- 指定者:
-
getData
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getData
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 返回:
- 条目的二维数组。
-
getSubMatrix
public FieldMatrix<T> getSubMatrix(int startRow, int endRow, int startColumn, int endColumn) throws MathIllegalArgumentException 获取子矩阵。行和列从0到n-1进行计数。- 指定者:
-
getSubMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getSubMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
startRow
- 初始行索引 -
endRow
- 最终行索引(包括) -
startColumn
- 初始列索引 -
endColumn
- 最终列索引(包括) - 返回:
- 包含指定行和列数据的矩阵。
- 抛出:
-
MathIllegalArgumentException
- 如果endRow < startRow
或endColumn < startColumn
。 -
MathIllegalArgumentException
- 如果索引无效。
-
setSubMatrix
public void setSubMatrix(T[][] subMatrix, int row, int column) throws MathIllegalArgumentException, NullArgumentException 使用输入subMatrix
数组中的数据替换从(row, column)
开始的子矩阵。索引从0开始。示例:
从以下开始1 2 3 4 5 6 7 8 9 0 1 2
和
subMatrix = {{3, 4} {5,6}}
,调用setSubMatrix(subMatrix,1,1))
将导致1 2 3 4 5 3 4 8 9 5 6 2
- 指定者:
-
setSubMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setSubMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
subMatrix
- 包含子矩阵替换数据的数组。 -
row
- 要替换的左上角元素的行坐标。 -
column
- 要替换的左上角元素的列坐标。 - 抛出:
-
MathIllegalArgumentException
- 如果subMatrix
不适合从元素(row, column)
开始的这个矩阵。 -
MathIllegalArgumentException
- 如果subMatrix
的行或列为空。 -
MathIllegalArgumentException
- 如果subMatrix
不是矩形的(不是所有行的长度相同)。 -
NullArgumentException
- 如果subMatrix
为null
。
-
getRowMatrix
获取第row
行的条目作为行矩阵。- 指定者:
-
getRowMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getRowMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要获取的行。 - 返回:
- 一个行矩阵。
- 抛出:
-
MathIllegalArgumentException
- 如果指定的行索引无效。
-
setRowMatrix
将第row
行的条目设置为行矩阵。- 指定者:
-
setRowMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setRowMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要设置的行。 -
matrix
- 行矩阵(必须有一行,且与实例具有相同数量的列)。 - 抛出:
-
MathIllegalArgumentException
- 如果指定的行索引无效。 -
MathIllegalArgumentException
- 如果矩阵维度与实例的一行不匹配。
-
setRowMatrix
将第row
行的条目设置为行矩阵。行索引从0开始。- 参数:
-
row
- 要设置的行 -
matrix
- 行矩阵(必须有一行,且与实例具有相同数量的列) - 抛出:
-
MathIllegalArgumentException
- 如果矩阵维度与实例的一行不匹配。 -
MathIllegalArgumentException
- 如果指定的行索引无效。
-
getColumnMatrix
获取第column
列的条目作为列矩阵。- 指定者:
-
getColumnMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getColumnMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
column
- 要获取的列。 - 返回:
- 一个列矩阵。
- 抛出:
-
MathIllegalArgumentException
- 如果指定的列索引无效。
-
setColumnMatrix
将第column
列的条目设置为列矩阵。- 指定者:
-
setColumnMatrix
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setColumnMatrix
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
column
- 要设置的列。 -
matrix
- 列矩阵(必须有一列,且与实例具有相同数量的行)。 - 抛出:
-
MathIllegalArgumentException
- 如果指定的列索引无效。 -
MathIllegalArgumentException
- 如果矩阵维度与实例的一列不匹配。
-
getRowVector
获取第row
行的条目作为向量。- 指定者:
-
getRowVector
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getRowVector
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要获取的行 - 返回:
- 一个行向量。
- 抛出:
-
MathIllegalArgumentException
- 如果指定的行索引无效。
-
setRowVector
将第row
行的条目设置为向量。- 指定者:
-
setRowVector
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setRowVector
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要设置的行。 -
vector
- 行向量(必须与实例具有相同的列数)。 - 抛出:
-
MathIllegalArgumentException
- 如果指定的行索引无效。 -
MathIllegalArgumentException
- 如果向量维度与实例行不匹配。
-
getColumnVector
返回列号为column
的条目作为向量。- 指定者:
-
getColumnVector
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getColumnVector
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
column
- 要获取的列。 - 返回:
- 一个列向量。
- 抛出:
-
MathIllegalArgumentException
- 如果指定的列索引无效。
-
setColumnVector
将列号为column
的条目设置为向量。- 指定者:
-
setColumnVector
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setColumnVector
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
column
- 要设置的列。 -
vector
- 列向量(必须与实例具有相同的行数)。 - 抛出:
-
MathIllegalArgumentException
- 如果指定的列索引无效。 -
MathIllegalArgumentException
- 如果向量维度与实例列不匹配。
-
getRow
以数组形式返回行号为row
的条目。- 指定者:
-
getRow
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getRow
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要获取的行。 - 返回:
- 行中的条目数组。
- 抛出:
-
MathIllegalArgumentException
- 如果指定的行索引无效。
-
setRow
将行号为row
的条目设置为行矩阵。- 指定者:
-
setRow
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setRow
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要设置的行。 -
array
- 行矩阵(必须与实例具有相同的列数)。 - 抛出:
-
MathIllegalArgumentException
- 如果指定的行索引无效。 -
MathIllegalArgumentException
- 如果数组大小与实例行不匹配。
-
getColumn
以数组形式返回列号为col
的条目。- 指定者:
-
getColumn
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
getColumn
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
column
- 要获取的列。 - 返回:
- 列中的条目数组。
- 抛出:
-
MathIllegalArgumentException
- 如果指定的列索引无效。
-
setColumn
将列号为column
的条目设置为列矩阵。- 指定者:
-
setColumn
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
setColumn
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
column
- 要设置的列。 -
array
- 列数组(必须与实例具有相同的行数)。 - 抛出:
-
MathIllegalArgumentException
- 如果指定的列索引无效。 -
MathIllegalArgumentException
- 如果数组大小与实例列不匹配。
-
getEntry
返回指定行和列中的条目。- 指定者:
-
getEntry
在接口中FieldMatrix<T extends FieldElement<T>>
- 指定者:
-
getEntry
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要获取的条目的行位置 -
column
- 要获取的条目的列位置 - 返回:
- 行,列中的矩阵条目
- 抛出:
-
MathIllegalArgumentException
- 如果行或列索引无效。
-
setEntry
设置指定行和列中的条目。- 指定者:
-
setEntry
在接口中FieldMatrix<T extends FieldElement<T>>
- 指定者:
-
setEntry
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要设置的条目的行位置 -
column
- 要设置的条目的列位置 -
value
- 要在行,列中设置的矩阵条目 - 抛出:
-
MathIllegalArgumentException
- 如果行或列索引无效。
-
addToEntry
更改指定行和列中的条目。- 指定者:
-
addToEntry
在接口中FieldMatrix<T extends FieldElement<T>>
- 指定者:
-
addToEntry
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要设置的条目的行位置 -
column
- 要设置的条目的列位置 -
increment
- 要添加到当前矩阵条目中的值(row, column)
- 抛出:
-
MathIllegalArgumentException
- 如果行或列索引无效。
-
multiplyEntry
更改指定行和列中的条目。- 指定者:
-
multiplyEntry
在接口中FieldMatrix<T extends FieldElement<T>>
- 指定者:
-
multiplyEntry
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
row
- 要设置的条目的行位置 -
column
- 要设置的条目的列位置 -
factor
- 用于当前矩阵条目(row,column)
的乘法因子 - 抛出:
-
MathIllegalArgumentException
- 如果行或列索引无效。
-
transpose
返回此矩阵的转置。- 指定者:
-
transpose
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
transpose
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 返回:
- 转置矩阵
-
getRowDimension
public int getRowDimension()返回矩阵中的行数。- 指定者:
-
getRowDimension
在接口中AnyMatrix
- 指定者:
-
getRowDimension
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 返回:
- 行维度
-
getColumnDimension
public int getColumnDimension()返回矩阵中的列数。- 指定者:
-
getColumnDimension
在接口中AnyMatrix
- 指定者:
-
getColumnDimension
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 返回:
- 列维度
-
operate
返回将此矩阵乘以向量v
的结果。- 指定者:
-
operate
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
operate
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
v
- 要操作的向量 - 返回:
-
this * v
- 抛出:
-
MathIllegalArgumentException
- 如果this
矩阵的列数不等于向量v
的大小。
-
preMultiply
返回通过向量v
的前乘结果(行向量)。- 指定者:
-
preMultiply
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
preMultiply
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
v
- 要前乘的行向量 - 返回:
-
v * this
- 抛出:
-
MathIllegalArgumentException
- 如果this
矩阵的行数不等于向量v
的大小
-
walkInRowOrder
按行顺序访问(并可能更改)所有矩阵条目。行顺序从左上角开始,从左到右迭代行的所有元素,然后转到下一行的最左边元素。
- 指定者:
-
walkInRowOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInRowOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 - 返回:
- FieldMatrixChangingVisitor.end()在遍历结束时返回的值
- 另请参阅:
-
walkInRowOrder
以行顺序访问(但不更改)所有矩阵条目。行顺序从左上角开始,从左到右迭代遍历一行的所有元素,然后转到下一行的最左边元素。
- 指定者:
-
walkInRowOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInRowOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 - 返回:
- FieldMatrixPreservingVisitor.end()在遍历结束时返回的值
- 另请参阅:
-
walkInRowOrder
public T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) throws MathIllegalArgumentException 以行顺序访问(并可能更改)一些矩阵条目。行顺序从左上角开始,从左到右迭代遍历一行的所有元素,然后转到下一行的最左边元素。
- 指定者:
-
walkInRowOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInRowOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 -
startRow
- 初始行索引 -
endRow
- 最终行索引(包括) -
startColumn
- 初始列索引 -
endColumn
- 最终列索引 - 返回:
- FieldMatrixChangingVisitor.end()在遍历结束时返回的值
- 抛出:
-
MathIllegalArgumentException
- 如果索引无效。 -
MathIllegalArgumentException
- 如果endRow < startRow
或endColumn < startColumn
。 - 另请参阅:
-
walkInRowOrder
public T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) throws MathIllegalArgumentException 访问(但不更改)按行顺序的一些矩阵条目。行顺序从左上角开始,从左到右迭代通过一行的所有元素,然后转到下一行的最左边元素。
- 指定者:
-
walkInRowOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInRowOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 -
startRow
- 初始行索引 -
endRow
- 最终行索引(包括) -
startColumn
- 初始列索引 -
endColumn
- 最终列索引 - 返回:
- FieldMatrixPreservingVisitor.end()在遍历结束时返回的值
- 抛出:
-
MathIllegalArgumentException
- 如果索引无效。 -
MathIllegalArgumentException
- 如果endRow < startRow
或endColumn < startColumn
。 - 另请参阅:
-
walkInOptimizedOrder
访问(并可能更改)所有矩阵条目,使用最快的可能顺序。最快的遍历顺序取决于确切的矩阵类。它可能不同于传统的行或列顺序。
- 指定者:
-
walkInOptimizedOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInOptimizedOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 - 返回:
-
FieldMatrixChangingVisitor.end()
在遍历结束时返回的值 - 另请参阅:
-
walkInOptimizedOrder
访问(但不更改)所有矩阵条目,使用最快的可能顺序。最快的遍历顺序取决于确切的矩阵类。它可能不同于传统的行或列顺序。
- 指定者:
-
walkInOptimizedOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInOptimizedOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 - 返回:
-
FieldMatrixPreservingVisitor.end()
在遍历结束时返回的值 - 另请参阅:
-
walkInOptimizedOrder
public T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) throws MathIllegalArgumentException 访问(可能更改)一些矩阵条目,使用最快的可能顺序。最快的遍历顺序取决于确切的矩阵类。它可能不同于传统的行或列顺序。
- 指定者:
-
walkInOptimizedOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInOptimizedOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 -
startRow
- 初始行索引 -
endRow
- 最终行索引(包括) -
startColumn
- 初始列索引 -
endColumn
- 最终列索引(包括) - 返回:
-
在遍历结束时由
FieldMatrixChangingVisitor.end()
返回的值 - 抛出:
-
MathIllegalArgumentException
- 如果endRow < startRow
或endColumn < startColumn
。 -
MathIllegalArgumentException
- 如果索引无效。 - 另请参阅:
-
walkInOptimizedOrder
public T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor, int startRow, int endRow, int startColumn, int endColumn) throws MathIllegalArgumentException 访问(但不更改)一些矩阵条目,使用最快的可能顺序。最快的遍历顺序取决于确切的矩阵类。它可能不同于传统的行或列顺序。
- 指定者:
-
walkInOptimizedOrder
在接口中FieldMatrix<T extends FieldElement<T>>
- 覆盖:
-
walkInOptimizedOrder
在类中AbstractFieldMatrix<T extends FieldElement<T>>
- 参数:
-
visitor
- 用于处理所有矩阵条目的访问者 -
startRow
- 初始行索引 -
endRow
- 最终行索引(包括) -
startColumn
- 初始列索引 -
endColumn
- 最终列索引(包括) - 返回:
-
在遍历结束时由
FieldMatrixPreservingVisitor.end()
返回的值 - 抛出:
-
MathIllegalArgumentException
- 如果endRow < startRow
或endColumn < startColumn
。 -
MathIllegalArgumentException
- 如果索引无效。 - 另请参阅:
-