我在 Windows 8 上使用 C++ AMP 和 Visual Studio 2012。我有一个案例,我有 2D array_viewexperimentData和 1D array_view experimentFactors,. 我想遍历 2D array_view 的第一个维度和 1D array_view 的第一个维度。这就是我所拥有的,但我经常收到错误消息,说这个没有重载。我想迭代numberOfTests第一个维度。我想要这条线:
auto test = experimentData[idx];
返回整行数据。我认为上面的section方法array_view是做到这一点的方法,但我不知道怎么做。
array_view<int_2, 2> experimentData(numberOfTests, numberOfSolutions, initialConditionSet);
array_view<float_2, 1> experimentFactors(numberOfTests, factorData);
extent<1> e_size(numberOfTests);
parallel_for_each(e_size, [=] (index<1> idx) restrict(amp) {
auto test = experimentData.section(idx);
auto factors = experimentFactors[idx];
analysisAlgorithm(test, factors);
});
该test对象应该是experimentData array_view. 该factors对象应该是experimentFactors array_view.
澄清
experimentDataarray_view 有 M 行和 N列
experimentFactorsarray_view 有 M行