创建阻塞矩阵

创建阻塞矩阵

我已经创建了一个如下所示的分块矩阵:

在此处输入图片描述

然而,我对以下三件事并不满意:

1)如何将这两条分界线(一条是垂直线,另一条是虚线)改为两条整线?

2) 顶部的“G1”相对于矩阵的左侧部分未完全居中。左侧的“G1”和“G2”相对于矩阵的上部和下部分别未垂直居中。

3)“R左侧的“=”部分未垂直居中。

以下是代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}
\begin{document}
\begin{minipage}{\textwidth}{
$\boldsymbol{R} = 
\begin{blockarray}{ccccccccccc}
& &  & & G1 &   & | &  & G2 &  \\
& & S_1 & S_2 & ... &  S_{n_1} & | & S_{n_1+1} & S_{n_1+2} & ... & S_n \\
\begin{block}{cc(ccccccccc)}
&S_1 &  {1} & r_{12} & ... & r_{1n_1} &| & r_{1(n_1+1)} & r_{1(n_1+2)} & ... & r_{1n}  \\
G1&S_2 & r_{12} & 1 &...& r_{2n_1} & |  & r_{2(n_1+1)} &  r_{2(n_1+2)}  & ... & r_{2n} \\
&\vdots &  \vdots & \vdots &\vdots & \vdots & | &\vdots &  \vdots & \vdots &\vdots \\
&S_{n_1} &  r_{1n_1} & r_{2n_1} & ... & 1 & | & r_{n_1(n_1+1)} & r_{n_2(n_1+2)}& ... & r_{n_1n} \\
-&-&  - & - & - & - & - & - & - & - & -\\
&S_{n1+1} &  r_{1(n_1+1)} & r_{2(n_1+1)} & ... & r_{n_1(n_1+1)} & | & r_{(n_1+1)(n_1+1)} & r_{(n_1+1)(n_1+2)}  & ... & r_{(n_1+1) n} \\
&S_{n1+2} &  r_{1(n_1+2)} & r_{2(n+1+2)} & ... & r_{(n_1+2)(n_1+1)} & | & r_{(n_1+1)(n_1+2)} & r_{(n_1+2)(n_1+2)}  & ... & r_{(n_1+2) n} \\
G2 &\vdots &  \vdots & \vdots &\vdots & \vdots & | & \vdots &\vdots & \vdots & \vdots \\
 &S_n &  r_{1n} & r_{2n} &...& r_{n_1 n} & | &  r_{(n_1+1)n} & r_{(n_1+2)n} & ... & r_{nn} \\
\end{block}
\end{blockarray}$
}
\end{minipage}
\end{document}

答案1

以下是一个解决方案pst-node以及一些小的调整:

\documentclass{article}
\usepackage{amsmath}
\setlength\tabcolsep{4pt}
\usepackage{blkarray}
\usepackage{geometry}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}

\begin{document}

\noindent\begin{minipage}{\textwidth}{%
  \begin{postscript}
    $%\boldsymbol{R} =
    \begin{blockarray}{cc*{5}{c}!{\pnode{V1}}*{4}{c}}
      & & & \BAmulticolumn{4}{c}{G1} & \BAmulticolumn{4}{c}{G2}\\
      & & & S_1 & S_2 & ... & S_{n_1} & S_{n_1+1} & S_{n_1+2} & ... & S_n \\
      \begin{block}{c@{\hskip1.5em}c@{}c(*{8}{c})}
        \BAmultirow{1em}{$\boldsymbol{R} = $} & &S_1 & {1} & r_{12} & ... & r_{1n_1} & r_{1(n_1+1)} & r_{1(n_1+2)} & ... & r_{1n} \\
        & &S_2 & r_{12} & 1 & ...& r_{2n_1} & r_{2(n_1+1)} & r_{2(n_1+2)} & ... & r_{2n} \\
        & \raisebox{1ex}{$ G1 $}&\vdots & \vdots & \vdots &\vdots & \vdots &\vdots & \vdots & \vdots &\vdots \\
        & &S_{n_1} & r_{1n_1} & r_{2n_1} & ... & 1 & r_{n_1(n_1+1)} & r_{n_2(n_1+2)}& ... & r_{n_1n} \\
        & & & \pnode{H1}& & & & & & & \pnode{H2} \\
        & &S_{n1+1} & r_{1(n_1+1)} & r_{2(n_1+1)} & ... & r_{n_1(n_1+1)} & r_{(n_1+1)(n_1+1)} & r_{(n_1+1)(n_1+2)} & ... & r_{(n_1+1) n} \\
        & &S_{n1+2} & r_{1(n_1+2)} & r_{2(n+1+2)} & ... & r_{(n_1+2)(n_1+1)} & r_{(n_1+1)(n_1+2)} & r_{(n_1+2)(n_1+2)} & ... & r_{(n_1+2) n} \\
        & \raisebox{1ex}{$ G2 $} &\vdots & \vdots & \vdots &\vdots & \vdots & \vdots &\vdots & \vdots & \vdots \\
        & &S_n & r_{1n} & r_{2n} &...& r_{n_1 n} & r_{(n_1+1)n} & r_{(n_1+2)n} & ... & r_{nn} \\
      \end{block}
      \begin{block}{c*{6}{c}!{\pnode{V2}}*{4}{c}}
        & & & & & & & & & \\
      \end{block}
    \end{blockarray}$
    \psset{linewidth=0.5pt, nodesepA=1ex, nodesepB=1.5ex, linestyle=dashed}
    \ncline{V1}{V2}
    \ncline[nodesep=-1.25em]{H1}{H2}
  \end{postscript}
}
\end{minipage}

\end{document} 

在此处输入图片描述

答案2

它的输出仍然相当丑陋,但比以前的要好一些。

您应该按照 MYaseen208 的建议使用 tikzmatrix,这样您就可以获得更好的矩阵结果。然后您可以使用\lower8pt\hbox{$R=$}或任何适当的垂直调整,或者更好的可能是\node at (appropriate coordinate) {$R=$};

\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}
\usepackage[margin=0.5in]{geometry}
\begin{document}
\begin{minipage}{\textwidth}{
$\lower8pt\hbox{$\boldsymbol{R} =$}\;\;
\begin{blockarray}{cccccc|cccc}
& &  & & G1 &     & G2 &  \\
& & S_1 & S_2 & \cdots &  S_{n_1} & S_{n_1+1} & S_{n_1+2} & \cdots & S_n \\
\begin{block}{cc(cccc|cccc)}
&S_1 &  {1} & r_{12} & \cdots & r_{1n_1} & r_{1(n_1+1)} & r_{1(n_1+2)} & \cdots & r_{1n}  \\
G1&S_2 & r_{12} & 1 &\cdots& r_{2n_1} & r_{2(n_1+1)} &  r_{2(n_1+2)}  & \cdots & r_{2n} \\
&\vdots &  \vdots & \vdots &\ddots & \vdots & \vdots &  \vdots & \ddots &\vdots \\
&S_{n_1} &  r_{1n_1} & r_{2n_1} & \cdots & 1 & r_{n_1(n_1+1)} & r_{n_2(n_1+2)}& \cdots & r_{n_1n} \\[2pt]\BAhline
&S_{n_1+1} &  r_{1(n_1+1)} & r_{2(n_1+1)} & \cdots & r_{n_1(n_1+1)} & r_{(n_1+1)(n_1+1)} & r_{(n_1+1)(n_1+2)}  & \cdots & r_{(n_1+1) n} \\
&S_{n_1+2} &  r_{1(n_1+2)} & r_{2(n+1+2)} & \cdots & r_{(n_1+2)(n_1+1)} & r_{(n_1+1)(n_1+2)} & r_{(n_1+2)(n_1+2)}  & \cdots & r_{(n_1+2) n} \\
G2 &\vdots &  \vdots & \vdots &\ddots & \vdots & \vdots &\vdots & \ddots & \vdots \\
 &S_n &  r_{1n} & r_{2n} &\cdots& r_{n_1 n}  & r_{(n_1+1)n} & r_{(n_1+2)n} & \cdots & r_{nn} \\
\end{block}
\end{blockarray}$
}
\end{minipage}
\end{document} 

相关内容