4 Réponses :
hmmm ... ok, j'ai quelque chose: ... Mais cela ressemble plus à "Capture" une variable, que la lecture ( comme la fonction Initer code> est utilisé pour analyser un flux de nombres, détecter le premier et renvoyer sa valeur em>) :) J'espère qu'il y a une meilleure façon de le faire ... P> < / p>
Deux manières:
1.
Tracez d'abord la fonction et laissez Gnuplot à indiquer la valeur minimale x: p> 2.
Utilisez un script externe pour déterminer quelle est la valeur minimale x: p>
Impressionnant - Merci beaucoup pour la réponse concise, @sunhwan Jo - Cheers!
Oui, mais si vous êtes si vous êtes intéressé par l'élément premier i> de la série de données, ce qui n'a pas nécessairement besoin d'être le minimum?
@Tmottm Ensuite, vous devez ajuster le script externe pour utiliser uniquement le premier élément (en utilisant AWK directement sans la partie de tri).
OK, je continue de revenir à cela - je pense donc que j'avais besoin de la clarification suivante ici:
étant donné que ou alternativement, pseudocode: et j'ai passé une tonne de temps à chercher quelque chose comme celui-ci dans Cela signifie que si je veux trouver des valeurs de jeu de données de Donc, ci-dessous est un autre exemple de code, où le premier élément de la première colonne dans le jeu de données " ... Alors, la parcelle peut être décalée par Remarque à nouveau que Aussi un p> Voici donc le code exemple - appelons-le Lorsque ce script est appelé, le jeu de données de l'OP est transféré déplacé, à partir de 0 - et les éléments suivants sont sortis dans la borne (les premières impressions de la table sont la réalité. Sortie de gnuplot code>, eh bien, termine les jeux de données comme des parcelles 2D - c'est un étant donné qu'il est en quelque sorte traite des structures 2D ou des tableaux. C'est pourquoi quelqu'un qui vient de C, Perl, Python, etc. penserait naturellement qu'il est possible d'indexer une manière d'une manière ou d'une manière à ne pas extraire une valeur à une position de rangée et de colonne donnée; Dites, quelque chose comme le pseudocode suivant: p>
my_dataset = parse_dataset ("inline.dat") code>
my_val = get_value (my_dataset, 1, 2) code>
sup> p>
gnuplot code>, et je ne trouve rien de tel (une variable directe accès aux valeurs de jeu de données via la ligne et Index de la colonne). Il semble que la chose
tracé code> le jeu de données - et éventuellement des valeurs d'accès là-bas, via une fonction appelée dans la partie code>. p>
gnuplot code>, je avez em> à itérer via le jeu de données en appelant
tracé < / Code> - Même si j'ai besoin de ces valeurs précisément pour construire un énoncé code> correct code> code> :) code> et je n'aime pas goûter cela, pensant que le premier
Terrain Code> peut en quelque sorte bousiller le second ensuite
:) code> Toutefois, comme Recherche de la valeur maximale dans un ensemble de données et soustrayez de la parcelle - Comp.Graphics.apps.gnuplot | Groupes Google souligne, un peut em>
(code> à un fichier, également
stdout code> ou
/ dev / null code >, et obtenez une table formatée ASCII plaine - donc au moins, je peux rediriger le premier appel de cette manière, de sorte qu'il n'interfère pas avec le terminal de traçage réel du deuxième appel à
tracé code>. p>
inline.dat code>" est récupéré via: p>
d'abord code> directement dans l'appel code> appel. p>
impression_dataseet_row_column code> appelle
traque code> (redirigé via
Table de réglage code> sur
/ dev / null code> / dev / null code >) - Et en tant que tel, chaque em> temps vous appelez à la récupération d'une valeur em> em>, il provoquera une itération via le jeu de données entier em>! Donc, si vous avez besoin d'un premier élément et d'un dernier élément (et éventuellement d'autres choses, comme Certaines statistiques de base avec GNUPLOT ), il est probablement préférable de réécrire
print_dataset_row_column code> de sorte que cela récupère tous ceux-ci. p>
print_dataseet_row_column code> La réécriture serait nécessaire si vous utilisez des formats spéciaux dans votre ensemble de données et le
à l'aide de la ligne CODE>. Notez que dans cet exemple, la troisième colonne est une chaîne - qui n'est pas par défaut acceptée comme colonne de données de tracé; Et en tant que telle, les appels vers les fonctions
print_dataset _ * code> échoueront s'ils doivent faire face à cela (voir aussi gnuplot tracé de la chaîne ). p>
test.gp code>: p>
TRACE CODE> redirigé via
Table de réglage code> à
stdout code>): p>
Pour lire une seule valeur à partir d'un fichier de données Considérez la fonction définie par l'utilisateur suivant:
at(file, row, col)=system( sprintf("%s | grep -v '^#\\|^$' | awk -v row=%d -v col=%d 'NR == row {print $col}'", (file[:1] eq '<') ? file[2:] :'cat '.file, row, col) )
Merci pour cela, @hannes - approche pratique pour garder à l'esprit. À votre santé!