在矩阵中包含对角线

在矩阵中包含对角线

请问您如何绘制这个矩阵?

http://cs630020.vk.me/v630020830/28b26/N3_2ms3duzg.jpg

答案1

解决方案如下pstricks

\documentclass{article}
\usepackage{pst-node, pst-plot}
\usepackage{auto-pst-pdf}
\def\fput(#1)#2{\rput(#1){\psframebox*{$#2$}}}

\begin{document}

\begin{pspicture}(0,0)(8,6)
    \psset{dy=-1, labels=none, ticks=none, xunit =0.8, yunit=-0.5, linejoin=1,arrowinset=0.15}
    \psline{ <->}(0,10)(0,0)(11,0)
    \pnodes{X}(0,0)(2,0)(4,0)(6,0)(8,0)(10,0)
    \pnodes{Y}(0,0)(0,2)(0,4)(0,6)(0,8)(0,10)
    \psset{nodesep=2pt}
    \begin{psclip}{\psframe[linestyle=none, framesep=2pt](0,0)(6.5,6)}
        \ncline{X1}{Y1}
        \ncline{X2}{Y2}
        \ncline{X3}{Y3}
        \ncline{X4}{Y4}
        \ncline{X5}{Y5}
    \end{psclip}
    \fput(1,1){a_1b_1}\fput(3,1){a_2b_1}\fput(5,1){a_3b_1}
    \fput(1,3){a_1b_2}\fput(3,3){a_2b_2}\fput(5,3){a_3b_2}
    \fput(1,5){a_1b_3}\fput(3,5){a_2b_3}\fput(5,5){a_3b_3}
    \psset{linestyle =dotted, linewidth=1.5pt}
    \psline(0.8,7)(10,7)
    \begin{psclip}{\psframe[linestyle=none, framesep=2pt](6.4,0)(9.9,6)}
        \multido{\i =1+2}{3}{\psline(6.3,\i)(10,\i)}
    \end{psclip}
\end{pspicture}

\end{document} 

在此处输入图片描述

答案2

{NiceArray}具有的解决方案nicematrix(≥ 2023-03-31 的 v. 6.17)。

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}


\begin{center}
\renewcommand{\arraystretch}{1.4}
%
\NiceMatrixOptions
  {
    exterior-arraycolsep ,
    pgf-node-code = \pgfsetfillcolor{white} \pgfusepathqfill
  }
%
$\begin{NiceArray}{cccc}
\CodeBefore [create-cell-nodes]
  \begin{tikzpicture}
    % the axis
    \draw [<->] (last-|1) -- (1-|1) -- (1-|last) ;
    % the diagonal lines
    \draw (1-|2) -- (2-|1) ;
    \draw (1-|3) -- (3-|1) ;
    \draw (1-|4) -- (4-|1) ;
    \draw (2-|4) -- (4-|2) ;
    \draw (3-|4) -- (4-|3) ;
  \end{tikzpicture}
\Body
a_1b_1 & a_2b_1 & a_3b_1 & \cdots \\
a_1b_2 & a_2b_2 & a_3b_2 & \cdots \\
a_1b_3 & a_2b_3 & a_3b_3 & \cdots \\
\Hdotsfor{4}
\end{NiceArray}$
\end{center}

\end{document}

您需要多次编译(因为 nicematrix 使用了 PGF/Tikz)。

上述代码的输出

相关内容