类 SpatialWeight

类文档

class SpatialWeight

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

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

公有成员函数

inline SpatialWeight()

构造一个新的 SpatialWeight 对象。

inline SpatialWeight(const Weight *weight, const Distance *distance)

构造一个新的 SpatialWeight 对象。

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

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

inline SpatialWeight(const std::unique_ptr<Weight> &weight, const std::unique_ptr<Distance> &distance)

构造一个新的 SpatialWeight 对象。

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

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

inline SpatialWeight(std::unique_ptr<Weight> &&weight, std::unique_ptr<Distance> &&distance)

构造一个新的 SpatialWeight 对象。

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

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

inline SpatialWeight(const Weight &weight, const Distance &distance)

Construct a new SpatialWeight object.

构造一个新的 SpatialWeight 对象。

参数:
  • weight -- Reference to a weight configuration.

  • distance -- Reference to distance configuration.

  • weight -- 指向权重配置的引用。

  • distance -- 指向距离配置的引用。

inline SpatialWeight(const SpatialWeight &spatialWeight)

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

参数:

spatialWeight -- 被复制对象的引用。

inline SpatialWeight(SpatialWeight &&other)

Move construct a new SpatialWeight object.

移动构造一个新的 SpatialWeight 对象。

参数:
  • other -- Reference to the object to move from.

  • other -- 被移动对象的引用。

inline virtual ~SpatialWeight()

销毁 SpatialWeight 对象。

inline const std::unique_ptr<Weight> &weight() const

获得 SpatialWeight::mWeight 的指针。

返回:

指针 SpatialWeight::mWeight 。

inline void setWeight(const Weight *weight)

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

参数:

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

inline void setWeight(const Weight &weight)

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

参数:

weight -- 指向 Weight 实例的指针。 指针所指向的对象会被克隆。

inline void setWeight(Weight &&weight)

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

参数:

weight -- 指向 Weight 实例的指针。 指针所指向的对象会被克隆。

inline void setWeight(std::unique_ptr<Weight> &&weight)

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

参数:

weight -- 指向 Weight 实例的专属智能指针的右值引用。 指针所指向的对象会被移动。

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

获得 SpatialWeight::mWeight 的引用并将其转换到所要求的类型 T

模板参数:

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

返回:

转换后的 SpatialWeight::mWeight 引用。

inline const std::unique_ptr<Distance> &distance() const

获得指针 SpatialWeight::mDistance。

返回:

SpatialWeight::mDistance 指针。

inline void setDistance(const Distance *distance)

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

参数:

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

inline void setDistance(const Distance &distance)

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

参数:

distance -- 指向 Distance 实例的指针。 指针所指向的对象会被克隆。

inline void setDistance(Distance &&distance)

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

参数:

distance -- 指向 Distance 实例的指针。 指针所指向的对象会被克隆。

inline void setDistance(std::unique_ptr<Distance> &&distance)

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

参数:

distance -- 指向 Distance 实例的专属智能指针的右值引用。 指针所指向的对象会被移动。

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

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

模板参数:

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

返回:

转换后的 SpatialWeight::mDistance 指针。

SpatialWeight &operator=(const SpatialWeight &spatialWeight)

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

参数:

spatialWeight -- 右值的引用。

返回:

该对象的引用。

SpatialWeight &operator=(SpatialWeight &&spatialWeight)

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

参数:

spatialWeight -- 右值的引用。

返回:

该对象的引用。

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

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

参数:

focus -- 当前样本的索引值。

返回:

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

virtual bool isValid()

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

返回:

true 如果当前对象合法。

返回:

false 如果当前对象不合法。

template<>
inline BandwidthWeight &weight() const

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

返回:

转换后的 SpatialWeight::mWeight 指针。

template<>
inline CRSDistance &distance() const

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

返回:

转换后的 SpatialWeight::mDistance 指针。

template<>
inline CRSSTDistance &distance() const

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

返回:

转换后的 SpatialWeight::mDistance 指针。

template<>
inline MinkwoskiDistance &distance() const

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

返回:

转换后的 SpatialWeight::mDistance 指针。

template<>
inline DMatDistance &distance() const

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

返回:

转换后的 SpatialWeight::mDistance 指针。

template<>
inline OneDimDistance &distance() const

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

返回:

转换后的 SpatialWeight::mDistance 指针。