Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有可能在犰狳身上复制这种方法吗?_C++_Matlab_Matrix_Armadillo_Conways Game Of Life - Fatal编程技术网

C++ 有可能在犰狳身上复制这种方法吗?

C++ 有可能在犰狳身上复制这种方法吗?,c++,matlab,matrix,armadillo,conways-game-of-life,C++,Matlab,Matrix,Armadillo,Conways Game Of Life,我找到了这段MATLAB代码,它可以让你在康威的生命游戏中使用circshift计算邻居,我认为这与卷积有关(我对自己的知识不太自豪,还在学习,希望你能解释发生了什么) t=1:t的 邻域=循环移位(X,[1,0])+循环移位(X,[-1,0])+循环移位(X,[0,1])+循环移位(X,[0,-1])+。。。 circshift(X,[1,1])+circshift(X,[-1,1])+circshift(X,[1,-1])+circshift(X,[-1,-1]); X(find(((邻域>

我找到了这段MATLAB代码,它可以让你在康威的生命游戏中使用circshift计算邻居,我认为这与卷积有关(我对自己的知识不太自豪,还在学习,希望你能解释发生了什么)

t=1:t的

邻域=循环移位(X,[1,0])+循环移位(X,[-1,0])+循环移位(X,[0,1])+循环移位(X,[0,-1])+。。。
circshift(X,[1,1])+circshift(X,[-1,1])+circshift(X,[1,-1])+circshift(X,[-1,-1]);
X(find(((邻域>3)|(邻域<2))&X))=0;
X(find((邻居==3)和~X))=1;
我试图做的是一样的,但是C++中的犰狳。 有可能这样做吗?问一下,因为我没有找到CirchShift函数,所以只需shift()或conv2()

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

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; 
arma::mat circshift(arma::mat A, int r, int c)
{
    return arma::shift(arma::shift(A,r,0),c,1);
}