goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Problem: Submatrix in einer Matrix

 

cremefresh
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2017, 13:09     Titel: Problem: Submatrix in einer Matrix
  Antworten mit Zitat      
Hallo, ich möchte eine große Matrizengleichung aufstellen und habe mir gedacht, dass ich einfach Submatrizen in einer Matrix aufstelle.
Doch das Ergebnis sieht leider so aus:


Dabei handelt es sich um eine 6x6 Matrix in dessen einträge die Submatrizen liegen.

Ich muss theoretisch nur die automatische Zentrierung der Einträge von der 6x6-Matrix ausschalten. Ist das ohne weiteres möglich?

markusv
Forum-Guru
Forum-Guru

Beiträge: 250
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 04.04.2017, 13:29     Titel:
  Antworten mit Zitat      
Hallo,

ein lauffähiges Beispiel als Quellcode wäre hier sinnvoller als eine überdimensionale Grafik, die sich nicht komplett anschauen lässt.

Wie hast du die Matrizen denn erstellt?
Wenn du hier array nutzt, lässt sich das sicherlich schnell umsetzen, ein Beispiel siehe hier.

Daraus anbei noch ein Beispiel:

Code • Öffne in Overleaf

\documentclass{scrartcl}  
\begin{document}
\[
\begin{array}{r@{\,}l}
    \mathbf{A}_i(q_i) = & {}^{i-1}\mathbf{T}_i(\mathbf{q}_i) \\[1em
]
    = & \left(\begin{array}{cccc}
        c_{\theta_i} & -s_{\theta_i} & 0 & 0 \\
        s_{\theta_i} & c_{\theta_i} & 0 & 0\\
        0 & 0 & 1 & 0 \\
        0 & 0 & 0 & 1\\
     \end{array}\right)\\[3em]
    = & \left(\begin{array}{cccc}
        c_{\theta_i} & -s_{\theta_i}c_{\alpha_i} & s_{\theta_i}s_{\alpha_i} & a_{i}c_{\theta_i} \\
        s_{\theta_i} & c_{\theta_i}c_{\alpha_i} & -c_{\theta_i}s_{\alpha_i} & a_{i}s_{\theta_i}\\
        0 & s_{\alpha_i} & c_{\alpha_i} & d_i \\
        0 & 0 & 0 & 1\\
     \end{array}\right)
\end{array}
\]
\end{document}
 

_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Books heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

cremefresh
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2017, 14:04     Titel:
  Antworten mit Zitat      
Dein Beispielcode hat mir sehr geholfen! Danke
Wie kriege ich jedoch weitere Matrizen rechts ran?

markusv
Forum-Guru
Forum-Guru

Beiträge: 250
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 04.04.2017, 14:14     Titel:
  Antworten mit Zitat      
cremefresh hat Folgendes geschrieben:

Wie kriege ich jedoch weitere Matrizen rechts ran?


Indem du die array-Umgebung um weitere Spalten erweiterst.
Aus
Code • Öffne in Overleaf
\begin{array}{r@{\,}l}

wird dann
Code • Öffne in Overleaf
\begin{array}{r@{\,}l@{\,}l@{\,}l@{\,}l}


Die @{\,} definieren den Spaltenabstand, hier also ein halbes Leerzeichen. rllll heißt eine Spalte rechtsbündig, die restlichen linksbündig, genau wie bei Tabellen!

Das Studieren einer Einführung in Latex könnte sicherlich auch nicht schaden. Wink
_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Books heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

cremefresh
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2017, 15:01     Titel:
  Antworten mit Zitat      
Danke, hat teilweise geklappt, denn die 4. Matrix in der 2. Zeile rutscht an eine komische Position:



mein Code sieht so aus:

Code • Öffne in Overleaf
%

\[
\begin{array}{r@{\,}l@{\,}l@{\,}l@{\,}l}
    \mathbf{A}_i(q_i) = & {}^{i-1}\mathbf{T}_i(\mathbf{q}_i) \\[1em
]
    =
     & \left(\begin{array}{cccc}
        c_{\theta_i}& -s_{\theta_i}  & 0 &0 \\
        s_{\theta_i} & c_{\theta_i} & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1 \\
     \end{array}\right)
      \left(\begin{array}{cccc}
        c_{\theta_i} & -s_{\theta_i} & 0 & 0 \\
        s_{\theta_i} & c_{\theta_i} & 0 & 0\\
        0 & 0 & 1 & 0 \\
        0 & 0 & 0 & 1\\
     \end{array}\right)
     \left(\begin{array}{cccc}
        1& 0 & 0 &0 \\
        0 & 1 & 0 &0 \\
        0&0  &1  &d_i \\
        0 & 0 &  0& 1\\
     \end{array}\right)\\
     \left(\begin{array}{cccc}
        1& 0 & 0 &a_i \\
        0 & 1 & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1 \\
     \end{array}\right)\\
    = & \left(\begin{array}{cccc}
        c_{\theta_i} & -s_{\theta_i}c_{\alpha_i} & s_{\theta_i}s_{\alpha_i} & a_{i}c_{\theta_i} \\
        s_{\theta_i} & c_{\theta_i}c_{\alpha_i} & -c_{\theta_i}s_{\alpha_i} & a_{i}s_{\theta_i}\\
        0 & s_{\alpha_i} & c_{\alpha_i} & d_i \\
        0 & 0 & 0 & 1\\
     \end{array}\right)
\end{array}
\]

 

markusv
Forum-Guru
Forum-Guru

Beiträge: 250
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 04.04.2017, 15:13     Titel:
  Antworten mit Zitat      
cremefresh hat Folgendes geschrieben:
hat teilweise geklappt, denn die 4. Matrix in der 2. Zeile rutscht an eine komische Position:


Das liegt an deinem komischen Code Laughing

Nein Spaß beiseite. Du musst Latex natürlich sagen, wann eine Spalte beendet ist. Dies tust du mit &. Eine Zeile beendest du mit \\.

Wie in den Submatrizen musst du dies auch für die umgebende Matrix tun.
Hier hast du einiges durcheinander gewürfelt. Nach der 3. Matrix kommt ein \\, dies sollte ein & sein. Außerdem trennst du die vorherigen Submatrizen nicht durch &. So werden alle einfach nur als eine Spalte betrachtet.

Siehe folgenden Code:
Code • Öffne in Overleaf
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
%

\[
\begin{array}{r@{\,}l@{\,}l@{\,}l@{\,}l}
    \mathbf{A}_i(q_i) = & {}^{i-1}\mathbf{T}_i(\mathbf{q}_i) \\[1em
]
    =
    &
    \left(\begin{array}{cccc}
        c_{\theta_i}& -s_{\theta_i}  & 0 &0 \\
        s_{\theta_i} & c_{\theta_i} & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1 \\
     \end{array}\right)
    &
    \left(\begin{array}{cccc}
        c_{\theta_i} & -s_{\theta_i} & 0 & 0 \\
        s_{\theta_i} & c_{\theta_i} & 0 & 0\\
        0 & 0 & 1 & 0 \\
        0 & 0 & 0 & 1\\
     \end{array}\right)
    &
    \left(\begin{array}{cccc}
        1& 0 & 0 &0 \\
        0 & 1 & 0 &0 \\
        0&0  &1  &d_i \\
        0 & 0 &  0& 1\\
     \end{array}\right)
    &
    \left(\begin{array}{cccc}
        1& 0 & 0 &a_i \\
        0 & 1 & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1 \\
     \end{array}\right)
     \\
     =
     &
     \left(\begin{array}{cccc}
        c_{\theta_i} & -s_{\theta_i}c_{\alpha_i} & s_{\theta_i}s_{\alpha_i} & a_{i}c_{\theta_i} \\
        s_{\theta_i} & c_{\theta_i}c_{\alpha_i} & -c_{\theta_i}s_{\alpha_i} & a_{i}s_{\theta_i}\\
        0 & s_{\alpha_i} & c_{\alpha_i} & d_i \\
        0 & 0 & 0 & 1\\
     \end{array}\right)
\end{array}
\]
 
\end{document}

_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Books heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

cremefresh
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2017, 16:24     Titel:
  Antworten mit Zitat      
Danke für die Tipps und deine Geduld! Aber ich hätte da noch ein letztes kleines Problem.
Tut mir wirklich leid, dass ich wegen jeder Kleinigkeit fragen muss.

Jetzt habe ich wieder das Problem, dass der Platz in den Spalten entsprechend der größten Matrize in den jeweiligen Zeile bestimmt wird:



Code • Öffne in Overleaf
%
\[
\begin{array}{r@{\,}l@{\,}l@{\,}l@{\,}l}
    \mathbf{A}_i(q_i) = & {}^{i-1}\mathbf{T}_i(\mathbf{q}_i) \\[1em
]
    =
    &
    \left(\begin{array}{cccc}
        c_{\theta_i}& -s_{\theta_i}  & 0 &0 \\
        s_{\theta_i} & c_{\theta_i} & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1\\
     \end{array}\right)
    &
    \left(\begin{array}{cccc}
        1& 0 & 0 &0 \\
        0 & 1 & 0 &0 \\
        0&0  &1  &d_i \\
        0 & 0 &  0& 1\\
     \end{array}\right)
    &
    \left(\begin{array}{cccc}
        1& 0 & 0 &a_i \\
        0 & 1 & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1 \\
     \end{array}\right)
     &
       \left(\begin{array}{cccc}
          1& 0 & 0 &0 \\
          0 & c_{\alpha_i} & -s_{\alpha_i} &0 \\
          0&s_{\alpha_i}  &c_{\alpha_i}  &0 \\
          0 & 0 &  0& 1 \\
     \end{array}\right)
     \\
     =
     &
      \left(\begin{array}{cccc}
     c_{\theta_i}& -s_{\theta_i} & 0 &0 \\
     s_{\theta_i} & c_{\theta_i} & 0 &0 \\
      0&0  &1  &0 \\
     0 & 0 &  0& 1\\
     \end{array}\right)
     &
      \left(\begin{array}{cccc}
        1&0 & 0 &a_i \\
      0 & 1 & 0 &0 \\
       0&0  &1  &d_i \\
      0 & 0 &  0& 1\\
     \end{array}\right)
     &
     \left(\begin{array}{cccc}
       1& 0 & 0 &0 \\
       0 & c_{\alpha_i} & -s_{\alpha_i} &0 \\
      0&s_{\alpha_i}  &c_{\alpha_i}  &0 \\
      0 & 0 &  0& 1 \\
     \end{array}\right)
      \\
      =
      &
    \left(\begin{array}{cccc}
    c_{\theta_i}&-s_{\theta_i}\,c_{\alpha_i} & s_{\theta_i}\,s_{\alpha_i} & a_i\,c_{\theta_i} \\
    s_{\theta_i} & c_{\theta_i}\,c_{\alpha_i} & -c_{\theta_i}\,s_{\alpha_i} &a_i\,s_{\theta_i} \\
     0&s_{\alpha_i}  &c_{\alpha_i}  &d_i \\
     0 & 0 &  0& 1\\
     \end{array}\right)
\end{array}
\]
% Ende des Dokumentes

markusv
Forum-Guru
Forum-Guru

Beiträge: 250
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 05.04.2017, 07:22     Titel:
  Antworten mit Zitat      
cremefresh hat Folgendes geschrieben:

Jetzt habe ich wieder das Problem, dass der Platz in den Spalten entsprechend der größten Matrize in den jeweiligen Zeile bestimmt wird:


Ja natürlich. Darum geht es bei Umgebungen mit Spaltendefinitionen.

Willst du alles nach dem = hintereinander haben, benutze entweder nur eine Spalte, oder versuch es mit der split-Umgebung:

Code • Öffne in Overleaf
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
%
\[
\begin{split}
   \mathbf{A}_i(q_i) = & {}^{i-1}\mathbf{T}_i(\mathbf{q}_i) \\[1em
]
    =
    &
    \left(\begin{array}{cccc}
        c_{\theta_i}& -s_{\theta_i}  & 0 &0 \\
        s_{\theta_i} & c_{\theta_i} & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1\\
     \end{array}\right)
    \,
    \left(\begin{array}{cccc}
        1& 0 & 0 &0 \\
        0 & 1 & 0 &0 \\
        0&0  &1  &d_i \\
        0 & 0 &  0& 1\\
     \end{array}\right)
    \,
    \left(\begin{array}{cccc}
        1& 0 & 0 &a_i \\
        0 & 1 & 0 &0 \\
        0&0  &1  &0 \\
        0 & 0 &  0& 1 \\
     \end{array}\right)
     \,
       \left(\begin{array}{cccc}
          1& 0 & 0 &0 \\
          0 & c_{\alpha_i} & -s_{\alpha_i} &0 \\
          0&s_{\alpha_i}  &c_{\alpha_i}  &0 \\
          0 & 0 &  0& 1 \\
     \end{array}\right)
     \\
     =
     &
      \left(\begin{array}{cccc}
     c_{\theta_i}& -s_{\theta_i} & 0 &0 \\
     s_{\theta_i} & c_{\theta_i} & 0 &0 \\
      0&0  &1  &0 \\
     0 & 0 &  0& 1\\
     \end{array}\right)
     \,
      \left(\begin{array}{cccc}
        1&0 & 0 &a_i \\
      0 & 1 & 0 &0 \\
       0&0  &1  &d_i \\
      0 & 0 &  0& 1\\
     \end{array}\right)
     \,
     \left(\begin{array}{cccc}
       1& 0 & 0 &0 \\
       0 & c_{\alpha_i} & -s_{\alpha_i} &0 \\
      0&s_{\alpha_i}  &c_{\alpha_i}  &0 \\
      0 & 0 &  0& 1 \\
     \end{array}\right)
      \\
      =
      &
    \left(\begin{array}{cccc}
    c_{\theta_i}&-s_{\theta_i}\,c_{\alpha_i} & s_{\theta_i}\,s_{\alpha_i} & a_i\,c_{\theta_i} \\
    s_{\theta_i} & c_{\theta_i}\,c_{\alpha_i} & -c_{\theta_i}\,s_{\alpha_i} &a_i\,s_{\theta_i} \\
     0&s_{\alpha_i}  &c_{\alpha_i}  &d_i \\
     0 & 0 &  0& 1\\
     \end{array}\right)
\end{split}
\]
% Ende des Dokumentes
\end{document}


Diese kennt nur eine Trennstelle (&). Die Abstände der Submatizen habe ich selbst gesetzt (statt der nachfolgenden & in der array-Umgebung)
_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Books heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

cremefresh
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2017, 12:24     Titel:
  Antworten mit Zitat      
Es sieht nun wunderbar aus!

Ich danke dir Markus! Wink

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de