Je suis en train de traiter des fichiers volumineux avec des valeurs qui ressemblent, par ex. comme celui-ci (toujours 2 colonnes, mais plus de 100 000 lignes):calcul de la dérivée pour chaque ligne d'un fichier avec plus de 100 000 lignes
1,3 1,5
2,5 2,0
3,6 6,0
4,0 10,1
7,8 11,5
Pour ces fichiers que je veux calculer le dérivé comme: (2.0-1.5)/(2.5-1.3) & puis (6.0-2.0)/(3.6-2.5) et ainsi de suite. J'ai écrit un fichier Scilab qui lit dans la matrice x à partir du fichier (test.txt) et fait ensuite une boucle forcée où les dérivées sont calculées. Voici ma version:
[x] = read('test.txt',-1,2);
i = 1;
j = 1;
s = size(x);
for i = 1:s(1,1)-1
f(i) = (x(i+1,2)-x(i,2))/(x(i+1,1)-x(i,1))
delta(i)=((x(i+1,1)+x(i,1)))/2
i=i+1
end
Mes questions sont de deux ordres:
1) le calcul de plus de 100 000 lignes prend beaucoup de temps -> est-il possible de le faire plus vite? Ou est-ce seulement possible quand le nombre de lignes est réduit (par exemple en considérant seulement chaque 1000ème étape?)
2) Puisque je veux faire cela dans un script Linux: y at-il un moyen facile de le faire dans awk ou avec un autre outil linux (comme sed ...)?
Merci beaucoup pour votre aide!
Stephan
fonctionne très bien, merci! –