类 OpenMapRealVector
java.lang.Object
org.hipparchus.linear.RealVector
org.hipparchus.linear.SparseRealVector
org.hipparchus.linear.OpenMapRealVector
- 所有已实现的接口:
-
Serializable
This class implements the
RealVector
interface with a OpenIntToDoubleHashMap
backing store.
注意:此实现假定对于任何 x
,等式 x * 0d == 0d
成立。但对于 NaN
不成立。此外,零条目将失去其符号。因此,某些操作(涉及 NaN
和/或无穷大)可能会产生不正确的结果,如乘法、除法或函数映射。
- 另请参阅:
-
嵌套类概要
修饰符和类型类说明protected class
Implementation ofEntry
optimized for OpenMap.protected class
Iterator class to do iteration over just the non-zero elements.从类继承的嵌套类/接口 org.hipparchus.linear.RealVector
RealVector.Entry, RealVector.SparseEntryIterator
-
字段概要
修饰符和类型字段说明static final double
Default Tolerance for having a value considered zero. -
构造器概要
限定符构造器说明Build a 0-length vector.OpenMapRealVector
(double[] values) Create from an array.OpenMapRealVector
(double[] values, double epsilon) Create from an array, specifying zero tolerance.OpenMapRealVector
(int dimension) Construct a vector of zeroes.OpenMapRealVector
(int dimension, double epsilon) Construct a vector of zeroes, specifying zero tolerance.OpenMapRealVector
(int dimension, int expectedSize) Build a vector with known the sparseness (for advanced use only).OpenMapRealVector
(int dimension, int expectedSize, double epsilon) Build a vector with known the sparseness and zero tolerance setting (for advanced use only).OpenMapRealVector
(Double[] values) Create from an array.OpenMapRealVector
(Double[] values, double epsilon) Create from an array.Copy constructor.protected
OpenMapRealVector
(OpenMapRealVector v, int resize) Build a resized vector, for use with append.Generic copy constructor. -
方法概要
修饰符和类型方法说明Optimized method to add two OpenMapRealVectors.add
(RealVector v) Compute the sum of this vector andv
.append
(double d) Construct a new vector by appending a double to this vector.Optimized method to append a OpenMapRealVector.append
(RealVector v) Construct a new vector by appending a vector to this vector.copy()
Returns a (deep) copy of this vector.Element-by-element division.Element-by-element multiplication.boolean
Test for the equality of two real vectors.int
Returns the size of the vector.double
Optimized method to compute distance.double
Distance between two vectors.double
getEntry
(int index) Return the entry at the specified index.double
Distance between two vectors.double
Distance between two vectors.double
Distance between two vectors.double
Get percentage of none zero elements as a decimal percent.getSubVector
(int index, int n) Get a subvector from consecutive elements.int
hashCode()
.protected boolean
isDefaultValue
(double value) Determine if this value is within epsilon of zero.boolean
Check whether any coordinate of this vector is infinite and none areNaN
.boolean
isNaN()
Check whether any coordinate of this vector isNaN
.mapAdd
(double d) Add a value to each entry.mapAddToSelf
(double d) Add a value to each entry.void
set
(double value) Set all elements to a single value.void
setEntry
(int index, double value) Set a single element.void
setSubVector
(int index, RealVector v) Set a sequence of consecutive elements.Create a sparse iterator over the vector, which may omit some entries.Optimized method to subtract OpenMapRealVectors.Subtractv
from this vector.double[]
toArray()
Convert the vector to an array ofdouble
s.void
unitize()
Converts this vector into a unit vector.Creates a unit vector pointing in the direction of this vector.从类继承的方法 org.hipparchus.linear.RealVector
addToEntry, checkIndex, checkIndices, checkVectorDimensions, checkVectorDimensions, combine, combineToSelf, cosine, dotProduct, getL1Norm, getLInfNorm, getMaxIndex, getMaxValue, getMinIndex, getMinValue, getNorm, iterator, map, mapDivide, mapDivideToSelf, mapMultiply, mapMultiplyToSelf, mapSubtract, mapSubtractToSelf, mapToSelf, outerProduct, projection, unmodifiableRealVector, walkInDefaultOrder, walkInDefaultOrder, walkInDefaultOrder, walkInDefaultOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder
-
字段详细资料
-
DEFAULT_ZERO_TOLERANCE
public static final double DEFAULT_ZERO_TOLERANCEDefault Tolerance for having a value considered zero.- 另请参阅:
-
-
构造器详细资料
-
OpenMapRealVector
public OpenMapRealVector()Build a 0-length vector. Zero-length vectors may be used to initialized construction of vectors by data gathering. We start with zero-length and use either theOpenMapRealVector(OpenMapRealVector, int)
constructor or one of theappend
method (append(double)
,append(RealVector)
) to gather data into this vector. -
OpenMapRealVector
public OpenMapRealVector(int dimension) Construct a vector of zeroes.- 参数:
-
dimension
- Size of the vector.
-
OpenMapRealVector
public OpenMapRealVector(int dimension, double epsilon) Construct a vector of zeroes, specifying zero tolerance.- 参数:
-
dimension
- Size of the vector. -
epsilon
- Tolerance below which a value considered zero.
-
OpenMapRealVector
Build a resized vector, for use with append.- 参数:
-
v
- Original vector. -
resize
- Amount to add.
-
OpenMapRealVector
public OpenMapRealVector(int dimension, int expectedSize) Build a vector with known the sparseness (for advanced use only).- 参数:
-
dimension
- Size of the vector. -
expectedSize
- The expected number of non-zero entries.
-
OpenMapRealVector
public OpenMapRealVector(int dimension, int expectedSize, double epsilon) Build a vector with known the sparseness and zero tolerance setting (for advanced use only).- 参数:
-
dimension
- Size of the vector. -
expectedSize
- Expected number of non-zero entries. -
epsilon
- Tolerance below which a value is considered zero.
-
OpenMapRealVector
public OpenMapRealVector(double[] values) Create from an array. Only non-zero entries will be stored.- 参数:
-
values
- Set of values to create from.
-
OpenMapRealVector
public OpenMapRealVector(double[] values, double epsilon) Create from an array, specifying zero tolerance. Only non-zero entries will be stored.- 参数:
-
values
- Set of values to create from. -
epsilon
- Tolerance below which a value is considered zero.
-
OpenMapRealVector
Create from an array. Only non-zero entries will be stored.- 参数:
-
values
- The set of values to create from
-
OpenMapRealVector
Create from an array. Only non-zero entries will be stored.- 参数:
-
values
- Set of values to create from. -
epsilon
- Tolerance below which a value is considered zero.
-
OpenMapRealVector
Copy constructor.- 参数:
-
v
- Instance to copy from.
-
OpenMapRealVector
Generic copy constructor.- 参数:
-
v
- Instance to copy from.
-
-
方法详细资料
-
isDefaultValue
protected boolean isDefaultValue(double value) Determine if this value is within epsilon of zero.- 参数:
-
value
- Value to test - 返回:
-
true
if this value is within epsilon to zero,false
otherwise.
-
add
Compute the sum of this vector andv
. Returns a new vector. Does not change instance data.- 覆盖:
-
add
在类中RealVector
- 参数:
-
v
- Vector to be added. - 返回:
-
this
+v
. - 抛出:
-
MathIllegalArgumentException
- ifv
is not the same size asthis
vector.
-
add
Optimized method to add two OpenMapRealVectors. It copies the larger vector, then iterates over the smaller.- 参数:
-
v
- 要添加的向量。 - 返回:
-
this
和v
的和。 - 抛出:
-
MathIllegalArgumentException
- 如果维度不匹配。
-
append
优化的方法,用于追加 OpenMapRealVector。- 参数:
-
v
- 要追加的向量。 - 返回:
-
将
v
追加到自身的结果。
-
append
通过追加一个向量到这个向量来构造一个新向量。- 指定者:
-
append
在类中RealVector
- 参数:
-
v
- 要追加到此向量的向量。 - 返回:
- 一个新向量。
-
append
通过追加一个双精度数到这个向量来构造一个新向量。- 指定者:
-
append
在类中RealVector
- 参数:
-
d
- 要追加的双精度数。 - 返回:
- 一个新向量。
-
copy
返回这个向量的(深度)复制。- 指定者:
-
copy
在类中RealVector
- 返回:
- 一个向量的复制。
-
ebeDivide
逐元素除法。- 指定者:
-
ebeDivide
在类中RealVector
- 参数:
-
v
- 必须除以实例元素的向量。 - 返回:
- 包含所有元素 this[i] / v[i] 的向量。
- 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
向量不同。
-
ebeMultiply
逐元素乘法。- 指定者:
-
ebeMultiply
在类中RealVector
- 参数:
-
v
- 必须乘以实例元素的向量。 - 返回:
- 包含所有元素 this[i] * v[i] 的向量。
- 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
向量不同。
-
getSubVector
获取连续元素的子向量。- 指定者:
-
getSubVector
在类中RealVector
- 参数:
-
index
- 第一个元素的索引。 -
n
- 要检索的元素数量。 - 返回:
- 包含 n 个元素的向量。
- 抛出:
-
MathIllegalArgumentException
- 如果索引无效。 -
MathIllegalArgumentException
- 如果元素数量不是正数。
-
getDimension
public int getDimension()返回向量的大小。- 指定者:
-
getDimension
在类中RealVector
- 返回:
- 这个向量的大小。
-
getDistance
优化的方法来计算距离。- 参数:
-
v
- 要计算距离的向量。 - 返回:
-
this
和v
之间的距离。 - 抛出:
-
MathIllegalArgumentException
- 如果维度不匹配。
-
getDistance
两个向量之间的距离。此方法计算与 L2 范数一致的距离,即元素差的平方和的平方根,或欧几里德距离。
- 覆盖:
-
getDistance
在类中RealVector
- 参数:
-
v
- 请求距离的向量。 - 返回:
- 两个向量之间的距离。
- 抛出:
-
MathIllegalArgumentException
- 如果v
与this
向量的大小不同。 - 另请参阅:
-
getEntry
返回指定索引处的条目。- 指定者:
-
getEntry
在类中RealVector
- 参数:
-
index
- 要获取的条目的索引位置。 - 返回:
- 索引处的向量条目。
- 抛出:
-
MathIllegalArgumentException
- 如果索引无效。 - 另请参阅:
-
getL1Distance
两个向量之间的距离。此方法计算与 L1 范数一致的距离,即元素差的绝对值之和。- 参数:
-
v
- 请求距离的向量。 - 返回:
-
这个向量与
v
之间的距离。 - 抛出:
-
MathIllegalArgumentException
- 如果维度不匹配。
-
getL1Distance
两个向量之间的距离。此方法计算与 L1 范数一致的距离,即元素差的绝对值之和。
- 覆盖:
-
getL1Distance
在类中RealVector
- 参数:
-
v
- 请求距离的向量。 - 返回:
- 两个向量之间的距离。
- 抛出:
-
MathIllegalArgumentException
- 如果v
与this
向量的大小不同。
-
getLInfDistance
两个向量之间的距离。此方法计算与 L∞ 范数一致的距离,即元素差的绝对值的最大值。
- 覆盖:
-
getLInfDistance
在类中RealVector
- 参数:
-
v
- 请求距离的向量。 - 返回:
- 两个向量之间的距离。
- 抛出:
-
MathIllegalArgumentException
- 如果v
与this
向量的大小不同。 - 另请参阅:
-
isInfinite
public boolean isInfinite()检查这个向量的任何坐标是否为无穷大且没有NaN
。- 指定者:
-
isInfinite
在类中RealVector
- 返回:
-
如果这个向量的任何坐标是无穷大且没有
NaN
,则返回true
,否则返回false
。
-
isNaN
public boolean isNaN()检查这个向量的任何坐标是否为NaN
。- 指定者:
-
isNaN
在类中RealVector
- 返回:
-
如果这个向量的任何坐标是
NaN
,则返回true
,否则返回false
。
-
mapAdd
将一个值添加到每个条目。返回一个新向量。不更改实例数据。- 覆盖:
-
mapAdd
在类中RealVector
- 参数:
-
d
- 要添加到每个条目的值。 - 返回:
-
this
+d
。
-
mapAddToSelf
将一个值添加到每个条目。实例在原地更改。- 覆盖:
-
mapAddToSelf
在类中RealVector
- 参数:
-
d
- 要添加到每个条目的值。 - 返回:
-
this
。
-
setEntry
设置单个元素。- 指定者:
-
setEntry
在类中RealVector
- 参数:
-
index
- 元素索引。 -
value
- 元素的新值。 - 抛出:
-
MathIllegalArgumentException
- 如果索引无效。 - 另请参阅:
-
setSubVector
设置一系列连续的元素。- 指定者:
-
setSubVector
在类中RealVector
- 参数:
-
index
- 要设置的第一个元素的索引。 -
v
- 包含要设置的值的向量。 - 抛出:
-
MathIllegalArgumentException
- 如果索引无效。
-
set
public void set(double value) 将所有元素设置为单个值。- 覆盖:
-
set
在类中RealVector
- 参数:
-
value
- 要为所有元素设置的单个值。
-
subtract
优化的方法,用于减去 OpenMapRealVectors。- 参数:
-
v
- 要从this
中减去的向量。 - 返回:
-
this
和v
的差异。 - 抛出:
-
MathIllegalArgumentException
- 如果维度不匹配。
-
subtract
从此向量中减去v
。返回一个新向量。不更改实例数据。- 覆盖:
-
subtract
在类中RealVector
- 参数:
-
v
- 要减去的向量。 - 返回:
-
this
-v
。 - 抛出:
-
MathIllegalArgumentException
- 如果v
与this
向量的大小不同。
-
unitVector
创建一个指向此向量方向的单位向量。此方法不会更改实例。- 覆盖:
-
unitVector
在类中RealVector
- 返回:
- 指向此向量方向的单位向量。
- 抛出:
-
MathRuntimeException
- 如果范数为零。
-
unitize
将此向量转换为单位向量。此方法会更改实例本身。- 覆盖:
-
unitize
在类中RealVector
- 抛出:
-
MathRuntimeException
- 如果范数为零。
-
toArray
public double[] toArray()将向量转换为double
数组。该数组与此向量数据独立:元素被复制。- 覆盖:
-
toArray
在类中RealVector
- 返回:
- 包含向量元素副本的数组。
-
hashCode
public int hashCode(). 此方法必须被RealVector的具体子类覆盖(当前实现会抛出异常)。实现注意事项:这适用于精确值,因此可能会导致a.subtract(b)
为零向量,而a.hashCode() != b.hashCode()
。- 覆盖:
-
hashCode
在类中RealVector
-
equals
测试两个实向量是否相等。如果两个实向量的所有坐标完全相同,并且没有一个是
NaN
,则认为两个实向量相等。将NaN
坐标视为全局影响向量并相互相等 - 即,如果实向量的任一(或全部)坐标等于NaN
,则该实向量等于所有坐标均为NaN
的向量。此方法必须被RealVector的具体子类覆盖(当前实现会抛出异常)。
实现注意事项:这执行精确比较,因此可能导致a.subtract(b
}为零向量,而a.equals(b) == false
。- 覆盖:
-
equals
在类中RealVector
- 参数:
-
obj
- 要测试是否相等的对象。 - 返回:
-
如果两个向量对象相等,则返回
true
,如果other
为null、不是RealVector
的实例或与此RealVector
实例不相等,则返回false
。
-
getSparsity
public double getSparsity()获取非零元素的百分比作为十进制百分比。- 返回:
- 非零元素的百分比作为十进制百分比
-
sparseIterator
创建一个稀疏迭代器,该迭代器可能省略一些条目。省略的条目要么是精确的零(对于密集实现),要么是未存储的条目(对于真实稀疏向量)。不保证迭代顺序。注意:派生类需要返回一个
Iterator
,只要Iterator.hasNext()
返回true
,就返回非null的RealVector.Entry
对象。- 覆盖:
-
sparseIterator
在类中RealVector
- 返回:
- 一个稀疏迭代器。
-