Comment obtenir la longueur d'un fichier dans MATLAB?
Est-il possible de déterminer la longueur d'un .dat fichier (en termes de lignes) sans charger le fichier dans l'espace de travail?
Comment sont "rangées" défini pour ce format de fichier? C'est un fichier texte avec une ligne par ligne, terminée par \n? De longueur fixe ou des enregistrements binaires? Ou quelque chose d'autre?
OriginalL'auteur | 2009-06-03
Vous devez vous connecter pour publier un commentaire.
Ligne Compteur -- charge uniquement un caractère par ligne:
ou la longueur du fichier (Matlab):
testread sera supprimée dans une future Matlab version. La version correspondante avec textscan est nrows = numel(cell2mat(textscan(fid,'%1c%*[^\n]'))).
Alex K., cette méthode est beaucoup plus rapide qu'un simple comptage des lignes avec
fgets()
. Lors du traitement d'un 1M de lignes de télémétrie de fichier, il enregistre quelques secondes.OriginalL'auteur Alex Kimmerly
Je suis en supposant que vous travaillez avec des fichiers texte, puisque vous avez mentionné à trouver le nombre de lignes.
Voici une solution:
Il utilise FGETS pour lire chaque ligne, en comptant le nombre de lignes qu'il lit. Notez que les données du fichier n'est jamais enregistré à l'espace de travail, il est simplement utilisé dans le contrôle conditionnel pour la boucle while.
OriginalL'auteur gnovice
Il est également important de garder à l'esprit que vous pouvez utiliser votre système de fichiers intégré, commandes, donc sur linux, vous pouvez utiliser la commande
puis obtenir le nombre de lignes de texte renvoyé (qui est stocké dans
w
). (Je ne pense pas qu'il y a un équivalent de commande sous Windows.)OriginalL'auteur djr