Wie richtet man Elemente zweier Matrizen horizontal aus?

Wie richtet man Elemente zweier Matrizen horizontal aus?

Ich möchte zwei Matrizen untereinander positionieren, so dass die Spalten der Matrizen auch untereinander dargestellt werden. Ein Beispiel, was ich gerne hätte:

  |100 200|
A=| 30  3 |
  | 1  119|

b=[ 1   0 ]

Ich habe Folgendes versucht:

\begin{align*}
    A= &\begin{vmatrix}
        100 & 200 \\
        30 & 3\\
        1 & 119
    \end{vmatrix}\\
    b= &\begin{bmatrix}
        1 & 0
    \end{bmatrix}
\end{align*}

...aber es richtet nur die =-Zeichen aus, nicht aber die Spalten der beiden Matrizen. Was ist der Trick? Vielen Dank im Voraus!

Antwort1

Ich gehe davon aus, dass die Zahlen in den jeweiligen Spalten rechtsbündig ausgerichtet sein sollten. Wenn das der Fall ist, könnten Sie

  • Verwenden Sie {vmatrix*}[r]Umgebungen und entsprechend ausgewählte \phantomAnweisungen, um die Zahlen im bZeilenvektor mit unsichtbaren Nullen „aufzufüllen“. oder

  • Laden Sie das siunitxPaket und verwenden Sie seinen SSpaltentyp in arrayUmgebungen.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{mathtools}% for 'vmatrix*' and 'align*' env.
\usepackage{siunitx}  % for 'S' column type
\begin{document}
\begin{align*}
    A&= \begin{vmatrix*}[r]
        100 & 200 \\
        30 & 3\\
        1 & 119
    \end{vmatrix*}\\
    b&= \begin{vmatrix*}[r]
        \phantom{00}1 & \phantom{00}0
    \end{vmatrix*}
\end{align*}

\begin{align*}
    A&= \left\lvert 
        \begin{array}{@{}*{2}{S[table-format=3.0]}@{}}
        100 & 200 \\
        30 & 3\\
        1 & 119
        \end{array} 
        \right\rvert\\
    b&= \left\lvert 
        \begin{array}{@{}*{2}{S[table-format=3.0]}@{}}
        1 & 0
        \end{array} 
        \right\rvert
\end{align*}
\end{document}

Antwort2

Wenn wir Micos Lösung erweitern, bmatrixist der schwierige Teil bei der Verwendung, dass die Klammern breiter werden, je höher sie werden. Ich verwende eine Savebox, um die Breite zu messen, ohne den Code zweimal eingeben zu müssen.

\documentclass{article}
\usepackage{mathtools}% for 'bmatrix*'
\usepackage{array}
\usepackage{collcell}

\newlength{\mywidth}
\settowidth{\mywidth}{$222$}% adjust to fit

\newcommand{\Rcolumn}[1]{\mathmakebox[\mywidth][r]{#1}}
\newcolumntype{R}{>{\collectcell\Rcolumn}c<{\endcollectcell}}

\newsavebox{\tempbox}

\begin{document}
\savebox{\tempbox}{$\displaystyle \begin{bmatrix*}[R]
        100 & 200 \\
        30 & 3\\
        1 & 119
    \end{bmatrix*}$}
\begin{align*}
    A&= \usebox{\tempbox}\\
    b&= \mathmakebox[\wd\tempbox][c]{\begin{bmatrix*}[R]
        1 & 0
    \end{bmatrix*}}
\end{align*}
\end{document}

Demo

verwandte Informationen