Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

12 Mär '18, 12:32

cis's gravatar image

cis
9.6k103460491

Listen / pgfplotstable: Wie kann ich mehrere Listen erstellen und abspeichern?

Um aus einer Tabellenzeile aus einer externen Datei `1 2 3 1 3 2 2 1 3 2 3 1 ...` eine kommaseparierte Liste zu machen, verwende ich eine xdef-Methode % Kommaseparierte Permutationsliste erstellen: \newcommand{\PermutationsListe}{}% Name reservieren \let\PermutationsListe=\empty% Liste erstellen \makeatletter \foreach \i in {0,...,\cols} { \pgfplotstablegetelem{0}{\i}\of{\Perm} \ifx\empty\PermutationsListe{} \protected@xdef\PermutationsListe{\pgfplotsretval}% \else \protected@xdef\PermutationsListe{\PermutationsListe,\pgfplotsretval}% \fi }\makeatother Was ich hier bräuchte wäre aber ein Befehl des Typs `\PermutationsListe{<Zeilennummer>}`, so dass mir z.B. `\PermutationsListe{2}` die Ausgabe `2, 1, 3` liefert. Wenn ich das oben genannte in ein newcommand oder eine foreach-Schleife stecke stecke, funktioniert es nicht mehr. \newcommand\PermutationsListeErstellen[1]{% % Kommaseparierte Permutationsliste erstellen: \newcommand{\PermutationsListe}{}% Name reservieren \let\PermutationsListe=\empty% Liste erstellen \makeatletter \foreach \i in {0,...,\cols} { \pgfplotstablegetelem{#1}{\i}\of{\Perm} \ifx\empty\PermutationsListe{} \protected@xdef\PermutationsListe{\pgfplotsretval}% \else \protected@xdef\PermutationsListe{\PermutationsListe,\pgfplotsretval}% \fi }\makeatother }% \PermutationsListeErstellen{0} Ich bekomme `! You can't use a prefix with `the character @'. <to be read again> @` Wie könnte ich das machen? \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{sagetex} \usepackage{tikz} \usetikzlibrary{calc} \usepackage{amsmath} \usepackage{pgfplotstable} \begin{document} % Liste einlesen \pgfplotstableread{permutationen.txt}{\Perm} \pgfplotstablegetcolsof{\Perm} \pgfmathsetmacro{\cols}{\pgfplotsretval-1} % Kommaseparierte Permutationsliste erstellen: \newcommand{\PermutationsListe}{}% Name reservieren \let\PermutationsListe=\empty% Liste erstellen \makeatletter \foreach \i in {0,...,\cols} { \pgfplotstablegetelem{0}{\i}\of{\Perm} \ifx\empty\PermutationsListe{} \protected@xdef\PermutationsListe{\pgfplotsretval}% \else \protected@xdef\PermutationsListe{\PermutationsListe,\pgfplotsretval}% \fi }\makeatother Anzeigen: \PermutationsListe \end{document}
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

12 Mär '18, 12:21

cis's gravatar image

cis
9.6k103460491

Listen / pgfplotstable: Wie kann ich mehrere Listen erstellen und abspeichern?

Um aus einer Tabellenzeile aus einer externen Datei `1 2 3 1 3 2 2 1 3 2 3 1 ...` eine kommaseparierte Liste zu machen, verwende ich eine xdef-Methode % Kommaseparierte Permutationsliste erstellen: \newcommand{\PermutationsListe}{}% Name reservieren \let\PermutationsListe=\empty% Liste erstellen \makeatletter \foreach \i in {0,...,\cols} { \pgfplotstablegetelem{0}{\i}\of{\Perm} \ifx\empty\PermutationsListe{} \protected@xdef\PermutationsListe{\pgfplotsretval}% \else \protected@xdef\PermutationsListe{\PermutationsListe,\pgfplotsretval}% \fi }\makeatother Was ich hier bräuchte wäre aber ein Befehl des Typs `\PermutationsListe{<Zeilennummer>}`, so dass mir z.B. `\PermutationsListe{2}` die Ausgabe `2, 1, 3` liefert. Wenn ich das o.g. oben genannte in ein newcommand oder eine foreach-Schleife stecke funktioniert es nicht mehr. Wie könnte ich das machen? \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{sagetex} \usepackage{tikz} \usetikzlibrary{calc} \usepackage{amsmath} \usepackage{pgfplotstable} \begin{document} % Liste einlesen \pgfplotstableread{permutationen.txt}{\Perm} \pgfplotstablegetcolsof{\Perm} \pgfmathsetmacro{\cols}{\pgfplotsretval-1} % Kommaseparierte Permutationsliste erstellen: \newcommand{\PermutationsListe}{}% Name reservieren \let\PermutationsListe=\empty% Liste erstellen \makeatletter \foreach \i in {0,...,\cols} { \pgfplotstablegetelem{0}{\i}\of{\Perm} \ifx\empty\PermutationsListe{} \protected@xdef\PermutationsListe{\pgfplotsretval}% \else \protected@xdef\PermutationsListe{\PermutationsListe,\pgfplotsretval}% \fi }\makeatother Anzeigen: \PermutationsListe \end{document}
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

12 Mär '18, 12:19

cis's gravatar image

cis
9.6k103460491

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

12 Mär '18, 12:19

cis's gravatar image

cis
9.6k103460491