project  ..
multiloc.h File Reference
#include "Eigen/Dense"
#include <vector>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <ctime>
#include <cmath>
#include <algorithm>
#include <sys/time.h>
Include dependency graph for multiloc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef vector< double > one_Tuple
 
typedef vector< one_Tupletwo_Tuple
 
typedef vector< two_Tuplethree_Tuple
 

Functions

void sortarry (two_Tuple &list, int temp)
 对一个二维的vector<vector<double>>的list进行按照每一个vector<double>的第2个元素进行升序 More...
 
bool finditems (double value, two_Tuple &list)
 判断value元素是否属于2维vector中的第一个元素,如果value属于list中返回true,否则返回false. More...
 
bool finditems (double value, one_Tuple &list)
 判断value元素是否属于1维vector的list,如果value属于list中返回true,否则返回false. More...
 
int classification (const one_Tuple &list_one, three_Tuple &list)
 坐标点聚类算法,即判断一维的vector<double>类型是否属于交点坐标聚类集合list中的一类,如果属于其中的一类, 则将该1维的vector归入到该类中,否则单独归为list中新的一类. More...
 
bool isequal (const two_Tuple &list, const two_Tuple &list1)
 判断两个二维vector即list和list1是否相等,如果两个相等,返回true.否则返回false. More...
 
void productiondot (one_Tuple &m_data, two_Tuple &angle, three_Tuple &list_three, int &numberruncount)
 测向线交点坐标聚类算法,即第一步读取靶点和测向线的数据信息,将两两测向线进行相交的到交点坐标. 第2步即将交点坐标送入坐标聚类算法中,进行坐标点的聚类.其中m_data为靶点的坐标.angle为每个靶点对应的测向 线的角度信息.list_three为输出的坐标点聚类集合.numberruncount为测向线数量用于剔除独立的测向线聚类集合. More...
 
void clearreplace (three_Tuple &means_result, three_Tuple &f_result, int &numberruncount)
 将坐标点聚类集合转化为测向线聚类集合.其中means_result为输入的坐标点聚类集合. f_result为输出的测向线聚类集合.numberruncount为测向线数量用于剔除独立的测向线聚类集合. More...
 
void Demo4Mult_Targetlocalization (three_Tuple &f_result, two_Tuple &list_two, string &str)
 将测向线聚类集合送入目标定位算法中,进行目标点定位.其中f_result为输入的测向线聚类集合. list_two为所有目标点的坐标.str为目标点的坐标信息以文件形式输出的文件路径. More...
 
void Demo1Single_Target (one_Tuple &angle, one_Tuple &data, MatrixXd &result)
 单目标定位算法根据输入的测向线角度和靶点坐标求解目标点的具体位置信息. data为所有靶点的坐标.angle为每个靶点对应测向线的角度信息.定位出来的目标点坐标将保存在result. More...
 
void Demo2 (one_Tuple &m_data, two_Tuple &angle, three_Tuple &list_three, three_Tuple &list_three2)
 对靶点数据和测向线数据通过聚类算法得到测向线聚类坐标集合.其中m_data为所有靶点的坐标. angle为每个靶点对应测向线的角度信息.交点坐标聚类集合为list_three,测向线组聚类集合为list_threetwo. More...
 
void Demo3count (two_Tuple &A, two_Tuple &B)
 判断测向线组中任意两类是否具有重复的测向线信息.将第一类中非重复的部分归入第2类中. A为一类的测向线聚类组.B为另一类的测向线聚类组. More...
 
void Demo3intersect (two_Tuple &A, two_Tuple &B, ofstream &out_stream, int numberruncount)
 判断测向线组中任意两类是否具有重复的测向线信息.将重复的多余的部分进行删除. A为一类的测向线聚类组. B为另一类的测向线聚类组.numberruncount为测向线数量用于剔除独立的测向线聚类集合. More...
 
void Demo3 (three_Tuple &f_result, three_Tuple &list_three, string &str, int &numberruncount)
 判断一类测向线聚类组与整个测向线聚类集合中每一类是否具有重复的测向线信息.将重复多余的测向线信息进行删除,同时更新测向线聚类集合. A为一类的测向线聚类组.B为所有测向线聚类集合.numberruncount为测向线数量用于剔除独立的测向线聚类集合. More...
 
void Demo3remove (two_Tuple &A, three_Tuple &B, ofstream &out_stream, int &numberruncount)
 将测向线聚类集合进行测向线野值检测. 将重复多余的测向线信息进行删除,同时更新测向线聚类集合.将删除的测向线信息保存到文件中. f_result为一类的测向线聚类组.list_three为所有测向线聚类集合.str为删除的测向线信息以文件形式输出的路径.numberruncount为测向线 数量用于剔除独立的测向线聚类集合. More...
 
bool Demo5inputdata (two_Tuple &angles, one_Tuple &m_coordinate)
 测试数据数据通过命令行进行在线输入,对输入的靶点数据坐标和测向线角度信息进行保存,剔除重复输入的信息. 输入的测向线角度信息保存在angles,输入的靶点坐标信息保存在m_coordinate.当输入出现数据格式出现错误时,返回false.正确返回true. More...
 

Variables

int numberruncount
 

Typedef Documentation

typedef vector<double> one_Tuple

使用one_Tuple代替vector<double>

typedef vector<two_Tuple> three_Tuple

使用three_Tuple代替vector<vector<vector<double>>>

typedef vector<one_Tuple> two_Tuple

使用two_Tuple代替vector<vector<double>>

Function Documentation

int classification ( const one_Tuple list_one,
three_Tuple list 
)

坐标点聚类算法,即判断一维的vector<double>类型是否属于交点坐标聚类集合list中的一类,如果属于其中的一类, 则将该1维的vector归入到该类中,否则单独归为list中新的一类.

Parameters
list_one是vector<double>类型
list为vector<vector<vector<double>>>类型
Returns
int类型
void clearreplace ( three_Tuple means_result,
three_Tuple f_result,
int &  numberruncount 
)

将坐标点聚类集合转化为测向线聚类集合.其中means_result为输入的坐标点聚类集合. f_result为输出的测向线聚类集合.numberruncount为测向线数量用于剔除独立的测向线聚类集合.

Parameters
means_result为vector<vector<double>>类型
f_result为vector<vector<double>>类型
numberruncount为int类型
Returns
无.
void Demo1Single_Target ( one_Tuple angle,
one_Tuple data,
MatrixXd &  result 
)

单目标定位算法根据输入的测向线角度和靶点坐标求解目标点的具体位置信息. data为所有靶点的坐标.angle为每个靶点对应测向线的角度信息.定位出来的目标点坐标将保存在result.

Parameters
angle为vector<double>类型
data为vector<double>类型
result为MatrixXd类型
Returns
无.
void Demo2 ( one_Tuple m_data,
two_Tuple angle,
three_Tuple list_three,
three_Tuple list_three2 
)

对靶点数据和测向线数据通过聚类算法得到测向线聚类坐标集合.其中m_data为所有靶点的坐标. angle为每个靶点对应测向线的角度信息.交点坐标聚类集合为list_three,测向线组聚类集合为list_threetwo.

Parameters
angle为vector<double>类型
data为vector<double>类型
result为MatrixXd类型
Returns
void Demo3 ( three_Tuple f_result,
three_Tuple list_three,
string &  str,
int &  numberruncount 
)

判断一类测向线聚类组与整个测向线聚类集合中每一类是否具有重复的测向线信息.将重复多余的测向线信息进行删除,同时更新测向线聚类集合. A为一类的测向线聚类组.B为所有测向线聚类集合.numberruncount为测向线数量用于剔除独立的测向线聚类集合.

Parameters
A为vector<vector<double>>类型
B为vector<vector<vector<double>>>类型
numberruncount为int类型
Returns
 无
void Demo3count ( two_Tuple A,
two_Tuple B 
)

判断测向线组中任意两类是否具有重复的测向线信息.将第一类中非重复的部分归入第2类中. A为一类的测向线聚类组.B为另一类的测向线聚类组.

Parameters
A为vector<vector<double>>类型
B为vector<vector<double>>类型
Returns
void Demo3intersect ( two_Tuple A,
two_Tuple B,
ofstream &  out_stream,
int  numberruncount 
)

判断测向线组中任意两类是否具有重复的测向线信息.将重复的多余的部分进行删除. A为一类的测向线聚类组. B为另一类的测向线聚类组.numberruncount为测向线数量用于剔除独立的测向线聚类集合.

Parameters
A为vector<vector<double>>类型
B为vector<vector<double>>类型
numberruncount为int类型
Returns
void Demo3remove ( two_Tuple A,
three_Tuple B,
ofstream &  out_stream,
int &  numberruncount 
)

将测向线聚类集合进行测向线野值检测. 将重复多余的测向线信息进行删除,同时更新测向线聚类集合.将删除的测向线信息保存到文件中. f_result为一类的测向线聚类组.list_three为所有测向线聚类集合.str为删除的测向线信息以文件形式输出的路径.numberruncount为测向线 数量用于剔除独立的测向线聚类集合.

Parameters
A为vector<vector<double>>类型
B为vector<vector<vector<double>>>类型
str为string类型
numberruncount为int类型
Returns
void Demo4Mult_Targetlocalization ( three_Tuple f_result,
two_Tuple list_two,
string &  str 
)

将测向线聚类集合送入目标定位算法中,进行目标点定位.其中f_result为输入的测向线聚类集合. list_two为所有目标点的坐标.str为目标点的坐标信息以文件形式输出的文件路径.

Parameters
f_result为vector<vector<double>>类型
list_two为vector<vector<double>>类型
str为string类型
Returns
无.
bool Demo5inputdata ( two_Tuple angles,
one_Tuple m_coordinate 
)

测试数据数据通过命令行进行在线输入,对输入的靶点数据坐标和测向线角度信息进行保存,剔除重复输入的信息. 输入的测向线角度信息保存在angles,输入的靶点坐标信息保存在m_coordinate.当输入出现数据格式出现错误时,返回false.正确返回true.

Parameters
angles为vector<vector<double>>类型
m_coordinate为<vector<double>类型
Returns
bool类型
bool finditems ( double  value,
two_Tuple list 
)

判断value元素是否属于2维vector中的第一个元素,如果value属于list中返回true,否则返回false.

Parameters
value为double类型
list是vector<vector<double>>类型
Returns
bool类型
bool finditems ( double  value,
one_Tuple list 
)

判断value元素是否属于1维vector的list,如果value属于list中返回true,否则返回false.

Parameters
list是vector<double>类型
value为double类型
Returns
bool类型
bool isequal ( const two_Tuple list,
const two_Tuple list1 
)

判断两个二维vector即list和list1是否相等,如果两个相等,返回true.否则返回false.

Parameters
list为vector<vector<double>>类型
list1为vector<vector<double>>类型
Returns
bool类型
void productiondot ( one_Tuple m_data,
two_Tuple angle,
three_Tuple list_three,
int &  numberruncount 
)

测向线交点坐标聚类算法,即第一步读取靶点和测向线的数据信息,将两两测向线进行相交的到交点坐标. 第2步即将交点坐标送入坐标聚类算法中,进行坐标点的聚类.其中m_data为靶点的坐标.angle为每个靶点对应的测向 线的角度信息.list_three为输出的坐标点聚类集合.numberruncount为测向线数量用于剔除独立的测向线聚类集合.

Parameters
m_data为vector<double>类型
angle为vector<vector<double>>类型
list_three为vector<vector<double>>类型
numberruncount为int类型
Returns
void sortarry ( two_Tuple list,
int  temp 
)

对一个二维的vector<vector<double>>的list进行按照每一个vector<double>的第2个元素进行升序

Parameters
list是vector<vector<double>>类型
temp为int类型
Returns
无返回

Variable Documentation

int numberruncount