有可能在Armadillo中复制MATLAB circshift方法吗



我为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((

shift()函数的工作原理与Matlab中vec类型的函数类似,但对于mat,您必须像一样(在每个维度中(执行两次

arma::mat circshift(arma::mat A, int r, int c)
{
return arma::shift(arma::shift(A,r,0),c,1);
}

相关内容

  • 没有找到相关文章

最新更新