Как использовать xt :: repeat? - PullRequest
1 голос
/ 14 марта 2020

Я хочу получить повторный массив так же, как numpy, но xt::repeat возвращает выражение. Когда я пытаюсь преобразовать это выражение в массив, я получаю ошибку компиляции.

xt::array<int> a = {{1, 2}, {3, 4}};
auto r = xt::repeat(a, 3, 1); // r is expression
xt::array<int> b = r; // compile error here

Как повторить массив и получить результат как другой массив, а не выражение? Может быть, я что-то упустил в документации, но не могу найти рабочий пример.

1 Ответ

1 голос
/ 16 марта 2020

Это ошибка в xtensor. Я работаю над патчем, сейчас вы можете использовать следующий обходной путь:

xt::xarray<int> b(r.shape());
std::copy(r.cbegin(), r.cend(), b.begin());
...