创建 4 阶方阵的宏

创建 4 阶方阵的宏

我创建了一个宏来使用以下代码编写 3 阶矩阵(方阵)

 \newcommand{\matrixthree}[9]{$\left(\begin{matrix} #1 & #2 & #3 \\ #4 & #5 & #6 \\ #7 & #8 & #9 \end{matrix}\right)$}

但是我无法为具有 16 个元素的二阶方阵创建具有 16 个参数(元素)的宏。

有办法吗?或者更好的方法。谢谢!

答案1

我不确定是否\matrixthree{a}{b}{c}{d}{e}{f}{g}{h}{i}真的比

\begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix}

\\无论如何,这是一个具有更简单界面的命令:行由 分隔,每行中的条目用逗号分隔。可选参数用于分隔符:(p默认)用于括号、b用于方括号、v用于横线、V用于双横线、B用于大括号。使用 则\buildmatrix[]{1,2\\3,4}没有分隔符。

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\buildmatrix}{O{p}m}
 {
  \begin{#1matrix}
  % separate the rows and process each row at a time
  \seq_set_split:Nnn \l_tmpa_seq { \\ } { #2 }
  \seq_map_function:NN \l_tmpa_seq \__nichas_matrix_row:n
  \end{#1matrix}
 }

\cs_new_protected:Nn \__nichas_matrix_row:n
 {
  % split the row at commas
  \seq_set_split:Nnn \l_tmpb_seq { , } { #1 }
  % insert & between each item
  \seq_use:Nn \l_tmpb_seq { & }
  % end the row
  \\
 }
\ExplSyntaxOff

\begin{document}

\[
\buildmatrix[b]{a,b,c \\ d,e,f \\ g,h,i }\ne
\buildmatrix{1,2,3,4 \\ 5,6,7,8 \\ 9,10,11,12 \\ 13,14,15,16 }
\]

\end{document}

在此处输入图片描述

相关内容