En C++
J'utilise actuellement ce bit de code pour tracer des données en utilisant gnuplot
. Gnuplot
La commande fit
produit cependant beaucoup de sortie non désirée sur la console de ligne de commande (que j'utilise pour sortir d'autres choses aussi, tout au long de mon programme).masquer C++ Gnuplot sortie de la console de tuyau
Comme cette sortie encombre la sortie de ma console, je voudrais la désactiver. Il devrait y avoir 2 façons de le faire:
- Cacher sortie créé par des programmes externes à l'aide
pipe
dansC++
- Dire
gnuplot
se taire et non sortie beaucoup
FILE *pipe = popen("gnuplot -persist", "w");//open up a pipe to gnuplot
fprintf(pipe, "set terminal x11 enhanced\n"); //set appropriate output terminal for the plot
fprintf(pipe, "set xlabel 'N'\n");//set xlabel
fprintf(pipe, "set ylabel 'error'\n");//set ylabel
fprintf(pipe, "set yrange [0:0.0001]\n");//set the y range
fprintf(pipe, "plot 'dataSimp.dat' ti 'Simpson method'\n");//plot the Simp error
fprintf(pipe, "replot 'dataTrap.dat' ti 'Trapezium method' \n");//plot the Trap error
fprintf(pipe, "replot 1/(x**2) ti '1/{x^2}'\n");//plot y=1/(x^2) function for comparison
fprintf(pipe, "replot 1/(x**4) ti '1/{x^4}'\n");//plot y=1/(x^4) function for comparison
//fit curve to dataSimp
fprintf(pipe, "set output 'rommel.txt'");
fprintf(pipe, "fSimp(x)=aSimp/(x**4) \n");
fprintf(pipe, "fit fSimp(x) 'dataSimp.dat' via aSimp\n");
fprintf(pipe, "replot aSimp/(x**4) ti 'fitted aSimp/{x^4}'\n");
//fit curve to dataSimp
fprintf(pipe, "fTrap(x)=aTrap/(x**2) \n");
fprintf(pipe, "fit fTrap(x) 'dataTrap.dat' via aTrap \n");
fprintf(pipe, "replot aTrap/(x**2) ti 'fitted aTrap/{x^2}'\n");
pclose(pipe);//close gnuplot pipe
essayé, mais ça ne marche pas. Gnuplot semble vouloir montrer toutes les itérations de signle dans le processus d'ajustement – romeovs
Il m'est juste venu à l'esprit: en utilisant '2>' au lieu de '>' ça marche! Apparemment, les 'ajustement 'sont des sorties d'erreur. Modifier votre message et je vais accepter. – romeovs
Remarque: Dans les fenêtres '/ dev/null' doit être'/nul'. – HeyYO