创建块矩阵的最佳方法是什么?

创建块矩阵的最佳方法是什么?

我有兴趣做以下事情:

在此处输入图片描述

我需要显示几个矩阵的结构,忽略每个块内的实际值,但命名(其中一些),如图所示。最好的方法是什么?我想 tikz 可能可以做到这一点,但我对它了解不够。

编辑:

我已成功完成以下操作:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\tikzset{%
  highlight/.style={rectangle,rounded corners,fill=blue!15,draw,fill opacity=0.5,thick,inner sep=0pt}
}
\newcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {#2};}
%
\newcommand{\Highlight}[1][submatrix]{%
    \tikz[overlay,remember picture]{
    \node[highlight,fit=(left.north west) (right.south east)] (#1) {};}
}

\begin{document}

  \[
  M = \left(\begin{array}{*5{c}}
    \tikzmark{left}{} &  &  &  & \\
     &  &  &  & \tikzmark{right}{} \\
     &  &  &  &  \\
     &  &  &  & 
  \end{array}\right)
  \Highlight[first]
  \qquad
  \begin{array}{*1{c}}
    
  \end{array}
\]

\end{document}

其结果为:

在此处输入图片描述

我无法添加另一个突出显示的块,只出现第二个。

答案1

一个帮助您开始学习TiKZ矩阵的代码。

\documentclass[tikz, border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}[
    mynode/.style={draw, fill=blue!30, minimum width=2cm, minimum height=1.5cm}]
    
\matrix[row sep=-\pgflinewidth, column sep=-\pgflinewidth,] (A) {
    \node[mynode]{$D_1$}; & \node[mynode]{$D_2$}; & \node{\dots}; & \node[mynode]{$D_n$};\\
    \node[mynode]{$F_1$};\\
     & \node[mynode]{$F_2$};\\
    & & \node{$\ddots$};\\
    & & &\node[mynode]{$F_n$};\\    
    };
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容