构造矩阵我没有问题,圈出第一行和第五行也没有问题,但我不知道如何在这个矩阵外面插入这些箭头。我希望有人能帮助我。
以下是我写的内容:
\documentclass[12pt,english]{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\usepackage{nicematrix}
\begin{document}
$$
\begin{bNiceMatrix}%
[code-after = { \tikz \node [draw, rounded corners, fit = (5-1) (5-7)] { }; \tikz \node [draw, rounded corners, fit = (1-1) (1-7)] { } ;}, left-margin = 7pt, right-margin = 7pt]
0 & 0 & 0 & 0 & 1 & \cdots & 0 \\
0 & 1 & 0 & 0 & 0 & \cdots & 0 \\
0 & 0 & \ddots & 0 & 0 & \cdots & 0 \\
0 & 0 & 0 & 1 & 0 & \cdots & 0 \\
1 & 0 & 0 & 0 & 0 & \cdots & 0 \\
0 & 0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 1
\end{bNiceMatrix}
$$
\end{document}
答案1
你写了,
我关心的是如何添加矩阵右侧的箭头。
通过添加单列、左对齐的array
环境,您的目标就可以轻松实现。
\documentclass[12pt,english]{article}
\usepackage{amsmath}
\usepackage{old-arrows} % optional (for smaller arrowheads)
\begin{document}
\[
\begin{bmatrix}
0 & 0 & 0 & 0 & 1 & \cdots & 0 \\
0 & 1 & 0 & 0 & 0 & \cdots & 0 \\
0 & 0 & \smash{\ddots} & 0 & 0 & \cdots & 0 \\
0 & 0 & 0 & 1 & 0 & \cdots & 0 \\
1 & 0 & 0 & 0 & 0 & \cdots & 0 \\
0 & 0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 1
\end{bmatrix}
\begin{array}{l}
\gets 1 \\
\gets 2 \\
\smash{\vdots} \\
\gets i_1-1 \\
\gets i_1 \\
\smash{\vdots} \\
\gets n
\end{array}
\]
\end{document}
答案2
使用last-col
:
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\usepackage{nicematrix}
\begin{document}
\[
\begin{bNiceMatrix}[
code-after = {
\tikz \node [draw, rounded corners, fit = (5-1) (5-7)] { };
\tikz \node [draw, rounded corners, fit = (1-1) (1-7)] { } ;
},
left-margin = 7pt,
right-margin = 7pt,
last-col,
]
0 & 0 & 0 & 0 & 1 & \cdots & 0 & \leftarrow 1\\
0 & 1 & 0 & 0 & 0 & \cdots & 0 & \leftarrow 2\\
0 & 0 & \smash{\ddots} & 0 & 0 & \cdots & 0 & \smash{\vdots} \\
0 & 0 & 0 & 1 & 0 & \cdots & 0 & \leftarrow i_1-1 \\
1 & 0 & 0 & 0 & 0 & \cdots & 0 & \leftarrow i_1 \\
0 & 0 & 0 & 0 & 0 & 1 & 0 & \smash{\vdots} \\
0 & 0 & 0 & 0 & 0 & 0 & 1 & \leftarrow n
\end{bNiceMatrix}
\]
\end{document}