![指示矩阵/数组中重复的非对角线元素的最佳方法是什么?](https://linux22.com/image/250683/%E6%8C%87%E7%A4%BA%E7%9F%A9%E9%98%B5%2F%E6%95%B0%E7%BB%84%E4%B8%AD%E9%87%8D%E5%A4%8D%E7%9A%84%E9%9D%9E%E5%AF%B9%E8%A7%92%E7%BA%BF%E5%85%83%E7%B4%A0%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我想排版以下类型的矩阵:当涉及的符号很大时,例如,代替$r$
,假设我们有$\mu(k-1)$
,代替$\lambda$
,我们有$\mu(k-2)$
,下面的矩阵 B 会变得非常丑陋,尤其是由于$\ddots$
看起来很丑陋。
有没有更好的方法来排版像下面的矩阵。
我发现,如果所有条目都相同,则非对角线条目通常会被大而突出的条目替换。如果有人能想出一个技巧来做到这一点,我会很高兴。可能,这是标准做法,而我不知道。
答案1
这是矩阵模式的一个非常常见的问题,老实说,我\<>dots
一点也不喜欢这种解决方案。我对这种用法有强烈的偏见,我倾向于认为它们在矩阵的上对角线和下对角线上不起作用。
因此,无论解决方案是什么,人们都应该选择传达信息,而不是遵守一些丑陋的标准。因此,我通常会选择以下解决方案之一
咬紧牙关,正确排版矩阵,使得点清晰无误。
\documentclass{article} \usepackage{amsmath} \begin{document} \[ AA^T = B = rI + \begin{bmatrix} 0 &\lambda &\ldots &\lambda\\ \lambda & 0 &\ddots &\vdots\\ \vdots &\ddots &0 &\lambda\\ \lambda &\ldots &\lambda &0 \end{bmatrix} \] \end{document}
避免混淆图形并定义有意义的(希望如此!)快捷方式,例如,您可以用黑板 1 定义所有一矩阵并
I
从中减去而不是。从文档空间的角度来看,用J
替换不会获得太多好处。(1-I)
J
\documentclass{article} \usepackage{bbm} \begin{document} \[ AA^T = B = rI + \lambda(\mathbbm{1}-I) \] \end{document}
使用任何图形包、TikZ、PSTricks、METAPOST 等正确绘制,如跨越矩阵的多行/列的对角点
答案2
这是个想法。我把它拼凑起来,所以可能需要手动调整p{3.5ex}
才能\scalebox{2}
得到你想要的。可能有更好的方法来完成同样的事情。
\documentclass{minimal}
\usepackage{array}
\usepackage{graphicx}
\usepackage{multirow}
\begin{document}
\[
\left[
\begin{array}{*{5}{>{\centering$}p{3.5ex}<{$}}}
r & & &\multicolumn{2}{c}{\multirow{2}{*}{\scalebox{2}{$\lambda$}}} \\
& r & & &\\
& &\ddots & &\\
\multicolumn{2}{c}{\multirow{2}{*}{\scalebox{2}{$\lambda$}}}&&r&\\
& & & &r
\end{array}
\right]
\]
\end{document}
得出以下结论
答案3
您想要传达这样的想法:\mu(k-1)
系数在对角线上重复,并且其他系数都等于\mu(k-2)
。那么为什么不尝试以下方法呢?
\[
AA^T=B=
\begin{bmatrix}
\mu(k-1) & \mu(k-2) & \mu(k-2) & \dots & \mu(k-2) \\
\mu(k-2) & \mu(k-1) & \mu(k-2) & \dots & \mu(k-2)\\
\hdotsfor{5} \\
\mu(k-2) & \dots & \mu(k-2) & \mu(k-2) & \mu(k-1)
\end{bmatrix}
=(\mu(k-1)-\mu(k-2))I_{v}+\mu(k-2)J_{v}
\]
(可能需要分成两行)
您可能需要添加以下形式的补充行
\mu(k-2) & \dots & \mu(k-2) & \mu(k-1) & \mu(k-2) \
就在最后一行之前。
答案4
我建议使用nicematrix
具有解决此问题的功能的包。 Tikz 节点会自动为矩阵的每个单元创建,并使用 Tikz 绘制虚线。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\renewcommand{\arraystretch}{1.5}
\[\begin{pNiceMatrix}
\mu(k-1) & \mu(k-2) & \Cdots & \mu(k-2) \\
\mu(k-2) & \Ddots & \Ddots & \Vdots \\
\Vdots & \Ddots & & \mu(k-2) \\
\mu(k-2) & \Cdots & \mu(k-2) & \mu(k-1)
\end{pNiceMatrix}\]
\end{document}