类 SpatialWeight

类文档

class SpatialWeight

距离和权重的组合类。 该类的实例通常用于提供指向 CGwmDistance 和 CGwmWeight 类型的指针。 在构造函数中,类型 CGwmDistance 和 CGwmWeight 的实例将会被克隆。 该类型也提供方法 CGwmSpatialWeight::weightVector() 用于直接计算空间权重。

如果距离和权重通过指针设置,那么该类对象将会取得他们的控制权,并在析构的时候释放资源。 如果距离和权重通过引用设置,那么该类对象将会克隆他们。

公有成员函数

SpatialWeight()

构造一个新的 CGwmSpatialWeight 对象。

SpatialWeight(Weight *weight, Distance *distance)

构造一个新的 CGwmSpatialWeight 对象。

参数
  • weight – 指向权重配置的指针。

  • distance – 指向距离配置的指针。

SpatialWeight(const SpatialWeight &spatialWeight)

复制构造一个新的 CGwmSpatialWeight 对象。

参数

spatialWeight – 被复制对象的引用。

virtual ~SpatialWeight()

销毁 CGwmSpatialWeight 对象。

inline Weight *weight() const

获得 CGwmSpatialWeight::mWeight 的指针。

返回

指针 CGwmSpatialWeight::mWeight 。

inline void setWeight(Weight *weight)

设置 CGwmSpatialWeight::mWeight 指针所指向的对象。

参数

weight – 指向 CGwmWeight 实例的指针。 获取该指针的控制权,并在类对象析构时释放该指针所指向的对象。

inline void setWeight(Weight &weight)

设置 CGwmSpatialWeight::mWeight 指针所指向的对象。

参数

weight – 指向 CGwmWeight 实例的指针。 指针所指向的对象会被克隆。

inline void setWeight(Weight &&weight)

设置 CGwmSpatialWeight::mWeight 指针所指向的对象。

参数

weight – 指向 CGwmWeight 实例的指针。 指针所指向的对象会被克隆。

template<typename T>
inline T *weight() const

获得指针 CGwmSpatialWeight::mWeight 并将其转换到所要求的类型 T

模板参数

T – 返回值的类型。只允许设置为 CGwmWeight 的派生类。

返回

转换后的 CGwmSpatialWeight::mWeight 指针。

inline Distance *distance() const

获得指针 CGwmSpatialWeight::mDistance。

返回

CGwmSpatialWeight::mDistance 指针。

inline void setDistance(Distance *distance)

设置 CGwmSpatialWeight::mDistance 指针所指向的对象。

参数

distance – Pointer to CGwmDistance instance. Con获取该指针的控制权,并在类对象析构时释放该指针所指向的对象。

inline void setDistance(Distance &distance)

设置 CGwmSpatialWeight::mDistance 指针所指向的对象。

参数

distance – 指向 CGwmDistance 实例的指针。 指针所指向的对象会被克隆。

inline void setDistance(Distance &&distance)

设置 CGwmSpatialWeight::mDistance 指针所指向的对象。

参数

distance – 指向 CGwmDistance 实例的指针。 指针所指向的对象会被克隆。

template<typename T>
inline T *distance() const

获得指针 CGwmSpatialWeight::mDistance 并将其转换到所要求的类型 T

模板参数

T – 返回值的类型。只允许设置为 CGwmDistance 的派生类。

返回

转换后的 CGwmSpatialWeight::mDistance 指针。

SpatialWeight &operator=(const SpatialWeight &spatialWeight)

重载的 = 运算符。 该函数会先实方当前 CGwmSpatialWeight::mWeight 和 CGwmSpatialWeight::mDistance 所指向的对象, 然后克隆右值传入的 CGwmWeight 和 CGwmDistance 实例。

参数

spatialWeight – 右值的引用。

返回

该对象的引用。

SpatialWeight &operator=(const SpatialWeight &&spatialWeight)

重载的 = 运算符。 该函数会先实方当前 CGwmSpatialWeight::mWeight 和 CGwmSpatialWeight::mDistance 所指向的对象, 然后克隆右值传入的 CGwmWeight 和 CGwmDistance 实例。

参数

spatialWeight – 右值的引用。

返回

该对象的引用。

inline virtual arma::vec weightVector(arma::uword focus)

计算当前样本到其他样本的空间权重向量(包括当前样本自身)。

参数

focus – 当前样本的索引值。

返回

vec 当前样本到其他所有样本的空间权重向量。

virtual bool isValid()

获取当前对象的设置是否合法。

返回

true 如果当前对象合法。

返回

false 如果当前对象不合法。

template<>
inline BandwidthWeight *weight() const

获得指针 CGwmSpatialWeight::mWeight 并将其转换到所要求的类型 CGwmBandwidthWeight 。

返回

转换后的 CGwmSpatialWeight::mWeight 指针。

template<>
inline CRSDistance *distance() const

获得指针 CGwmSpatialWeight::mDistance 并将其转换到所要求的类型 CGwmCRSDistance 。

返回

转换后的 CGwmSpatialWeight::mDistance 指针。

template<>
inline MinkwoskiDistance *distance() const

获得指针 CGwmSpatialWeight::mDistance 并将其转换到所要求的类型 CGwmMinkwoskiDistance 。

返回

转换后的 CGwmSpatialWeight::mDistance 指针。

template<>
inline DMatDistance *distance() const

获得指针 CGwmSpatialWeight::mDistance 并将其转换到所要求的类型 CGwmDMatDistance 。

返回

转换后的 CGwmSpatialWeight::mDistance 指针。

template<>
inline OneDimDistance *distance() const

获得指针 CGwmSpatialWeight::mDistance 并将其转换到所要求的类型 CGwmOneDimDistance 。

返回

转换后的 CGwmSpatialWeight::mDistance 指针。