Я нашел этот фрагмент кода для MATLAB, который позволяет вам подсчитывать соседей для Игры жизни Конвея с использованием circshift и того, что, как я думаю, имеет какое-то отношение к свертке (не слишком горд своими знаниями, все еще учусь и хотел бы получить ваше объяснение того, что происходит)
for t=1:T
neighbors = circshift(X, [1, 0]) + circshift(X, [-1, 0]) + circshift(X, [0, 1]) + circshift(X, [0, -1]) + ...
circshift(X, [1, 1]) + circshift(X, [-1, 1]) + circshift(X, [1, -1]) + circshift(X, [-1, -1]);
X(find(((neighbors > 3) | (neighbors < 2)) & X)) = 0;
X(find((neighbors == 3) & ~X)) = 1;
Я пытаюсь сделать то же самое, но на C ++ Armadillo. Можно ли это сделать? Спрашиваю, поскольку я не нашел функцию circshift, просто shift () или conv2 ()