Problem: Submatrix in einer Matrix

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Problem: Submatrix in einer Matrix

von cremefresh » Mi 5. Apr 2017, 12:24

Es sieht nun wunderbar aus!

Ich danke dir Markus! :wink:

von markusv » Mi 5. Apr 2017, 07:22

cremefresh hat 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:
\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)

von cremefresh » Di 4. Apr 2017, 16:24

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:

Bild
% 
\[
\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 

von markusv » Di 4. Apr 2017, 15:13

cremefresh hat geschrieben:hat teilweise geklappt, denn die 4. Matrix in der 2. Zeile rutscht an eine komische Position:
Das liegt an deinem komischen Code :lol:

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:
\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}

von cremefresh » Di 4. Apr 2017, 15:01

Danke, hat teilweise geklappt, denn die 4. Matrix in der 2. Zeile rutscht an eine komische Position:

Bild

mein Code sieht so aus:
% 

\[
\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}
\]

 

von markusv » Di 4. Apr 2017, 14:14

cremefresh hat geschrieben: Wie kriege ich jedoch weitere Matrizen rechts ran?
Indem du die array-Umgebung um weitere Spalten erweiterst.
Aus
\begin{array}{r@{\,}l}
wird dann
\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:

von cremefresh » Di 4. Apr 2017, 14:04

Dein Beispielcode hat mir sehr geholfen! Danke
Wie kriege ich jedoch weitere Matrizen rechts ran?

von markusv » Di 4. Apr 2017, 13:29

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:
\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}

Problem: Submatrix in einer Matrix

von cremefresh » Di 4. Apr 2017, 13:09

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:
Bild

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?

Nach oben