我在 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
.
澄清
experimentData
array_view 有 M 行和 N列
experimentFactors
array_view 有 M行