решение1
Это для начала (а не попытка полностью воспроизвести снимок экрана). Этот ответ поставляется со стилем, 3d matrix
который позволяет вам создавать эти блоки довольно удобно, вам нужно только заполнить записи. Пожалуйста, убедитесь, что вы даете каждой матрице разное имя, иначе одна матрица может унаследовать размер блока от другой матрицы. (Вам также нужно запустить код дважды.) Я также показываю, как можно рисовать стрелки между матрицами и конкретными элементами.
\documentclass[tikz,border=3mm]{standalone}
\usepackage{eqparbox}
\usetikzlibrary{matrix,positioning,arrows.meta,bending}
\newbox\matrixcellbox
\tikzset{math center align per column/.style={nodes={execute at begin
node={\setbox\matrixcellbox=\hbox\bgroup$},
execute at end
node={$\egroup\eqmakebox[\tikzmatrixname\the\pgfmatrixcurrentcolumn][c]{\copy\matrixcellbox}}}},
math center align per matrix/.style={nodes={execute at begin
node={\setbox\matrixcellbox=\hbox\bgroup$},
execute at end
node={$\egroup\eqmakebox[\tikzmatrixname][c]{\copy\matrixcellbox}}}},
3d matrix/.style={matrix of nodes,nodes in empty cells,math center align per
matrix,nodes={draw,anchor=center,outer sep=0pt,inner sep=1pt,
text height={height("\raisebox{0.2ex}{A}")},text depth={depth("g")}},
column sep=-\pgflinewidth,row sep=-\pgflinewidth,execute at end matrix={
\foreach \XX in {1,...,\the\pgfmatrixcurrentcolumn}
{\draw (\tikzmatrixname-1-\XX.north east) -- ++ (#1,#1);}
\ifnum\the\pgfmatrixcurrentrow>1
\foreach \XX in {1,...,\the\numexpr\the\pgfmatrixcurrentrow-1}
{\draw (\tikzmatrixname-\XX-\the\pgfmatrixcurrentcolumn.south east) -- ++ (#1,#1);}
\fi
\draw (\tikzmatrixname-1-1.north west) -- ++ (#1,#1) --
([xshift=1ex,yshift=1ex]\tikzmatrixname-1-\the\pgfmatrixcurrentcolumn.north east) --
([xshift=1ex,yshift=1ex]\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn.south east) --
(\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn.south east);
}},3d matrix/.default=1ex,
Rightarrow/.style={double,double
distance=#1,>={Implies[bend]},shorten <=0.4ex},Rightarrow/.default=1ex}
\begin{document}
\begin{tikzpicture}[node distance=4em]
\node[3d matrix] (mat1){
0 & 0 & 1 & 1 & 0 & 0 & -1 & -1 & 0 & 0 \\
};
\node[3d matrix,above=of mat1] (mat2){
0 & 0 & 1 & 1 & 0 & 0 & -1 & -1 & 0 & 0\\
0 & 0 & -1 & -1 & 0 & 0 & 1 & 1 & 0 & 0\\
};
\node[3d matrix,above=of mat2] (mat3){
0 & 1 & 0 & -1 & 0 \\
0 & -1 & 0 & 1 & 0 \\
};
\node[3d matrix,above=of mat3] (mat4){ 0 & -4 & 0 \\};
\node[3d matrix,above=of mat4] (mat5){ 4 & -4 \\};
\node[3d matrix,above=of mat5] (mat6){ 0.99 & 0.01 \\};
\draw[-{Latex[bend]}] (mat1.east) to[out=0,in=0]
coordinate[near end](aux1) ([xshift=1ex]mat2-1-10.east);
\path (aux1) node[right,above right,3d matrix]{-1 & 0 & 1\\};
\draw[-{Latex[bend]}] (mat1.east) to[out=0,in=0] ([xshift=1ex]mat2-2-10.east);
\draw[Rightarrow,->] (mat1) -- coordinate[midway,right=2em] (aux2) (mat2);
\path (aux2) node[right,3d matrix] (mat1a){1 & 0 & -1 \\};
\draw[Rightarrow,->] (mat2) -- (mat3);
\draw[Rightarrow,->] (mat3) -- (mat4)
coordinate[midway,right=1em] (aux3);
\path (aux3) node[right,3d matrix] (mat3a){-1 & 0 & 1 \\
1 & 0 & -1\\};
\foreach \X in {1,2,3} {\foreach \Y in {1,2}
{\draw[-latex] (mat4-1-\X) -- (mat5-1-\Y);}}
\draw[Rightarrow,->] (mat5) -- (mat6);
\end{tikzpicture}
\end{document}
Естьнекоторые проблемыпри попытке добавить матрицу внутрь конструкции пути. Поэтому я добавил координаты вдоль пути и использовал их для размещения матрицы.