Ich verwende pgfplotstable, um aus einer externen Datei

1 2 3 1 3 2 ...

zu lesen.

Wie kann ich z.B. die komplette 0. und die komplette 1. Zeile auslesen, um daraus eine Matrix

alt text

zu erstellen?

Gibt es dafür eine einfache Methode?

Öffne in Overleaf
\begin{filecontents*}{permutationen.txt}
  1   2   3
  1   3   2
  2   1   3
  2   3   1
  3   1   2
  3   2   1
\end{filecontents*}

%\documentclass[]{article}
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{amsmath}
\usepackage{pgfplotstable}

\begin{document}

% Liste einlesen
\pgfplotstableread{permutationen.txt}{\Perm}
%\pgfplotstableset{header=false}
\pgfplotstablegetrowsof{\Perm}
\pgfmathsetmacro{\rows}{\pgfplotsretval}
\pgfplotstablegetcolsof{\Perm}
\pgfmathsetmacro{\cols}{\pgfplotsretval}
Test: Zeilen: \rows, Spalten: \cols

\pgfplotstablegetelem{1}{2}\of{\Perm}\pgfplotsretval

SOLL:
$\begin{pmatrix} 1& 2 & 3\\ 1 & 3 & 2\end{pmatrix}$,

\end{document}

gefragt 12 Mär, 04:55

cis's gravatar image

cis
7.2k12154246
Akzeptiert: 72%


\gobble braucht man um die Spaltenspezifikationen {ccc} zu schlucken, die für pmatrix nicht von Bedeutung sind.

Öffne in Overleaf
\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplotstable}

\newcommand\gobble[1]{}

\begin{document}

\pgfplotstableread{
  1   2   3
  1   3   2
  2   1   3
  2   3   1
  3   1   2
  3   2   1
}{\Perm}

$
\pgfplotstabletypeset[
every head row/.style={output empty row},
begin table=\begin{pmatrix}\gobble,
end table=\end{pmatrix},
skip rows between index={2}{99}
]{\Perm}
$

\end{document}

alt text

Permanenter link

beantwortet 12 Mär, 06:34

Henri's gravatar image

Henri
12.9k42536

bearbeitet 12 Mär, 07:18

Puh... Warum skip rows between index={1}{99} ?

(12 Mär, 06:48) cis

Ohhh... Die Ausgabe ist aber nicht die richtige: Es zeigt einen komischen Header 0 1 2 an. Den versuche ich gerade wegzubekommen. Zum anderen versuche ich gerade zwei beliebige Zeilen, nicht notwendigerweise die ersten beiden, zu verwenden.

(12 Mär, 07:02) cis

Das erstere geht mal wieder nur mit Gewalt: every head row/.style={output empty row},

(12 Mär, 07:05) cis

Prinzipiell irgendwie so, aber die 0. Permutation (1 2 3 \\ 1 2 3) kriegt man so nicht hin.

% Permutationsmatrix \Nummer <Wert> anzeigen: \pgfmathtruncatemacro{\Nummer}{3} \pgfmathtruncatemacro{\NummerMinusEins}{\Nummer-1} \pgfmathtruncatemacro{\NummerPlusEins}{\Nummer+1} $\pgfplotstabletypeset[every head row/.style={output empty row}, begin table=\begin{pmatrix}\gobble, end table=\end{pmatrix}, skip rows between index={1}{\NummerMinusEins}, skip rows between index={\Nummer}{\rows}, ]{\Perm}$

(12 Mär, 07:10) cis

@cis Das mit den Permutationen wurde doch schon in https://texwelt.de/wissen/fragen/21671/pgfmath-permutationen-bestimmen gelöst.

(12 Mär, 07:19) Henri

@cis “Das erstere geht mal wieder nur mit Gewalt” Falsch, das ist sogar genau so dokumentiert.

(12 Mär, 07:20) Henri

Nene, das geht nicht so sehr darum, diese Permutationsmatrizen anzuzeigen, das ist nur ein Teil von etwas Umfangreicheren. Es geht vielmehr darum, wie ich zwei Zeilen davon auslesen kann, um diese weiterzuverarbeiten.

(12 Mär, 07:25) cis
Ergebnis 5 von 7 Alle anzeigen
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×17

Frage gestellt: 12 Mär, 04:55

Frage wurde angeschaut: 146 Mal

Zuletzt aktualisiert: 12 Mär, 07:25