【发布时间】:2018-10-31 05:59:54
【问题描述】:
我是 C++ 的初学者,因此我在洗牌多维数组的行时遇到了问题。我查看了相关的解决方案,但对我没有多大帮助。 这是我迄今为止尝试过的:
int main(int argc, char **argv){
Array<float, 2, 2> f1;
f1 = allocate(4, 4);
f1[0][0] = 1.0;
f1[0][1] = 2.0;
f1[0][2] = 3.0;
f1[0][3] = 4.0;
f1[1][0] = 5.0;
f1[1][1] = 6.0;
f1[1][2] = 7.0;
f1[1][3] = 8.0;
f1[2][0] = 9.0;
f1[2][1] = 10.0;
f1[2][2] = 11.0;
f1[2][3] = 12.0;
f1[3][0] = 13.0;
f1[3][1] = 14.0;
f1[3][2] = 15.0;
f1[3][3] = 16.0;
Array<float,2,2> feature1shuffled = shufflePoints(f1);
cout<<feature1shuffled<<endl;
return 0;
}
Array<float,2,2> shufflePoints(Array<float,2,2> dataSet){
random_device rd;
mt19937 g(rd());
shuffle(begin(dataSet), end(dataSet), g);
return dataSet;
}
但它不会根据行正确洗牌。谁能帮我解决这个问题?
【问题讨论】:
-
您需要在每一行上调用 shuffle,而不是整个数组。你如何做到这一点取决于你如何访问
Array类中的行。 -
Array是什么? -
可能是 Eigen::Array
-
@Jarod42 我正在使用来自的
Array! Fertilized 图书馆。
标签: c++ c++11 multidimensional-array shuffle