alt text

Hallo!

Mit dem Befehl

Open in Online-Editor
\def\getcell#1#2{
\pgfplotstablegetelem{#1}{#2}\of{\SumBinVertTab}\pgfplotsretval%
}
$P(X \leq k) = F(n,p;k) = \getcell{0}{2}$

entlese ich z.B. den Wert 0.59049 aus folgedner Tabelle.

  • Wie kann ich den Befehl so anpassen, dass ich die Werte n, p, k eingeben muss und damit den richtigen Tabellenwert erhalte? Etwa \getSumBin{10}{0.25}{3} was dann 0.7759 liefern sollte; allgemein \getSumBin{<nWert>}{<pWert>}{<kWert>}

  • Am Rande: Die Option precision=4 wird bei diesem Auslesen scheints ignoriert, es sollte jedoch schon der Wert ausgelesen werde, der auch in der Tabelle angezeigt wird.

  • Es gibt bei der Tabelle noch ein Problem: Bei p >= 0.5 müsste 1-<Ablesewert> ausgegeben werden.

  • Wie kann ich mit pgfplots-Rechnmitteln zwei ausgelesene Werte voneinader abziehen, um

$P(X = k) = P(X \leq k) - P(X \leq k-1) = F(n,p;k) - F(n,p;k-1) = ???$ zu berechnen.

Open in Online-Editor
\documentclass[varwidth, border=10pt]{standalone}
%\documentclass[paper=a5]{scrbook}
%\usepackage[left=1cm, right=1cm]{geometry}

\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{document}
\begin{filecontents}{n5.txt}
5   0   0.59049 0.32768 0.23730 0.16807 0.07776 0.03125
5   1   0.91854 0.73728 0.63281 0.52822 0.33696 0.18750
5   2   0.99144 0.94208 0.89648 0.83692 0.68256 0.50000
5   3   0.99954 0.99328 0.98438 0.96922 0.91296 0.81250
5   4   0.99999 0.99968 0.99902 0.99757 0.98976 0.96875
\end{filecontents}
\begin{filecontents}{n10.txt}
10 0 0.34868    0.10737 0.05631 0.02825 0.00605 0.00098
10 1 0.73610    0.37581 0.24403 0.14931 0.04636 0.01074
10 2 0.92981    0.67780 0.52559 0.38278 0.16729 0.05469
10 3 0.98720    0.87913 0.77588 0.64961 0.38228 0.17188
10 4 0.99837    0.96721 0.92187 0.84973 0.63310 0.37695
10 5 0.99985    0.99363 0.98027 0.95265 0.83376 0.62305
10 6 0.99999    0.99914 0.99649 0.98941 0.94524 0.82813
10 7 1.00000    0.99992 0.99958 0.99841 0.98771 0.94531
10 8 1.00000    1.00000 0.99997 0.99986 0.99832 0.98926
10 9 1.00000    1.00000 1.00000 0.99999 0.99990 0.99902
\end{filecontents}
% ....    HIER WEITERE
% Tabellen einlesen
\pgfplotstableread{n5.txt}{\nV} % "n Römische Zahl" geht das auch besser?
\pgfplotstableread{n10.txt}{\nX}    
% ....    HIER WEITERE
% --------------------------
% Tabellen ausgeben
\pgfplotstabletypeset{\nV} \\
%\pgfplotstabletypeset{\nX} \\
% ....    HIER WEITERE
% --------------------------

\def\getcell#1#2{
\pgfplotstablegetelem{#1}{#2}\of{\nV}\pgfplotsretval%
}

$P(X \leq k) = F(n,p;k) = \getcell{0}{2}$

$P(X = k) = P(X \leq k) - P(X \leq k-1) = F(n,p;k) - F(n,p;k-1)  = ???$

\end{document}

gefragt 19 Jan, 21:54

cis's gravatar image

cis
5.4k860169
Akzeptiert: 68%

bearbeitet 22 Jan, 17:10

Ausgelesen wird natürlich immer der Wert, der in der Datei steht. Man kann den Wert anschließend aber mit allen Mitteln von pgf nachbearbeiten, dazu gehören auch Rundungsfunktionen für Integer und Rundungsfunktionen für Gleitkommazahlen

(21 Jan, 03:16) saputello

Ich würde annehmen, dass man mit einem Schleifenkonstrukt über die Tabelle den Index des richtigen Wertes ermitteln könnte. Ich habe aber erst einmal keine Zeit, das auszuführen.

(21 Jan, 03:17) saputello

Ich glaub, ich tu das Problem fundamental umformulieren; eigentlich stehen die Werte alle in separaten Dateien. Damit sollte es einfacher werden.

(22 Jan, 16:18) cis

Jetzt müsste es ein echtes Minimalbeispiel sein.

(22 Jan, 17:06) cis

Du musst einfach nur \pgfmathprintnumber verwenden anstatt \pgfplotsretval direkt zu expandieren (Das ist das, was pgfplotstable intern auch macht).

Open in Online-Editor
\begin{filecontents}{n5.txt}
5   0   0.59049 0.32768 0.23730 0.16807 0.07776 0.03125
5   1   0.91854 0.73728 0.63281 0.52822 0.33696 0.18750
5   2   0.99144 0.94208 0.89648 0.83692 0.68256 0.50000
5   3   0.99954 0.99328 0.98438 0.96922 0.91296 0.81250
5   4   0.99999 0.99968 0.99902 0.99757 0.98976 0.96875
\end{filecontents}

\documentclass{article}
\usepackage{pgfplotstable}

\def\getcell#1#2{%
  \pgfplotstablegetelem{#1}{#2}\of{\nV}%
  \pgfmathprintnumber{\pgfplotsretval}%
}

\begin{document}

\pgfplotstableread{n5.txt}{\nV}

\pgfplotstabletypeset{\nV}

$P(X \leq k) = F(n,p;k) = \getcell{0}{2}$

$P(X = k) = P(X \leq k) - P(X \leq k-1) = F(n,p;k) - F(n,p;k-1)  = ???$

\end{document}

alt text

Permanenter link

beantwortet 09 Jul, 05:42

Henri's gravatar image

Henri
10.0k31730

bearbeitet 09 Jul, 05:42

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

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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:

×185
×11

Frage gestellt: 19 Jan, 21:54

Frage wurde angeschaut: 693 Mal

Zuletzt aktualisiert: 09 Jul, 05:42