As-tu besoin de stocker toutes les données de chaque ligne ?
Si ce n'est pas le cas, tu peux utiliser * pour ne pas lire les données inutiles. La quantité de mémoire nécessaire au stockage des données sera diminuée.
Par exemple, pour ne pas lire la première valeur de chaque ligne :
Data=mfscanf(-1,fd,'%*lg %s %lg %lg %lg %lg %lg %lg %lg %lg %lg %lg\n')
Les calculs peuvent-ils être effectués bloc par bloc ? Si c'est le cas, tu peux lire le fichier par bloc de ligne, ce qui évitera de tout stocker en mémoire.
Par exemple par bloc de 1000 lignes :
1 2 3 4 5 6 7 8 9 10 11
| DataFile=input('Give the path to the file (between inverted commas)')
fd=mopen(string(DataFile))
INFOS=mfscanf(1,fd,'%s %s %c %c %s %s %s %s %s %s %s %s %s\n')
while 1
if meof(fd) then
break
end
Data=mfscanf(1000,fd,'%lg %s %lg %lg %lg %lg %lg %lg %lg %lg %lg %lg\n')
// Calcul intermédiaire avec les 1000 lignes lues
end
mclose(fd) |
Partager