我试图在600个数据点上实现K-means聚类算法,所有这些都有60个维度.一行输入将是这样的:
28.7812 34.4632 31.3381 31.2834 28.9207 33.7596 25.3969 27.7849 35.2479 27.1159 32.8717 29.2171 36.0253 32.337 34.5249 32.8717 34.1173 26.5235 27.6623 26.3693 25.7744 29.27 30.7326 29.5054 33.0292 25.04 28.9167 24.3437 26.1203 34.9424 25.0293 26.6311 35.6541 28.4353 29.1495 28.1584 26.1927 33.3182 30.9772 27.0443 35.5344 26.2353 28.9964 32.0036 31.0558 34.2553 28.0721 28.9402 35.4973 29.747 31.4333 24.5556 33.7431 25.0466 34.9318 34.9879 32.4721 33.3759 25.4652 25.8717
Run Code Online (Sandbox Code Playgroud)
我在想有一个数据点结构,它有一个属性向量,比如
struct Point{
std::vector<double> attributes;
};
Run Code Online (Sandbox Code Playgroud)
我想当迭代所有点时,将i作为for循环中的迭代器加起来?这是解决这个问题的最好方法吗?
不确定你在问什么,但是使用C++ 11你可以使用std :: array,这样你可能会有一些
std::vector<std::array<double,60>> myvec;
Run Code Online (Sandbox Code Playgroud)
然后myvec[2]和myvec[10](假设myvec.size() > 10)都是类型的元素,std::array<double,60>所以你当然可以使用myvec[2][7]和myvec[10][59]