J'ai un format de fichier à largeur fixe (l'original a été saisi pour une routine Fortran). Plusieurs lignes du fichier ressemblent le ci-dessous:Octave/Matlab - Lecture d'un fichier de largeur fixe
1078.0711005.481 932.978 861.159 788.103 716.076
Comment cela devrait en fait lire:
1078.071 1005.481 932.978 861.159 788.103 716.076
J'ai essayé différentes méthodes, textscan, fgetl, fscanf etc, mais le problème que j'ai est, comme vu ci-dessus, parfois en raison de la largeur fixe des fichiers d'origine il n'y a pas d'espace entre certains des nombres. Je ne peux pas sembler trouver un moyen de les lire directement et je ne peux pas changer le format original.
Le meilleur que je suis venu avec est si loin d'utiliser fgetl qui lit la ligne entière dans, je refaçonner le résultat dans un tableau 8,6
A=fgetl
A=reshape(A,8,6)
qui génère le résultat suivant
11
009877
703681
852186
......
049110
787507
118936
Alors maintenant, j'ai ce qui précède et pensé que je pourrais être en mesure de concaténer les lignes de ce tableau pour former chaque numéro, bien que ce soit difficile semblant aussi bien avoir essayé strcat, vertcat etc.
Tout cela semble un long chemin alors espérait de meilleures suggestions.
Merci.
Si l'espacement des colonnes est le même, même si elles sont écrasées ensemble, vous pourriez faire str2double (A (1: 8)) et str2double (A (9:16)) et ainsi de suite pour le reste de la ligne. Tant que la longueur de la colonne ne change pas, cela peut aider. Je n'ai pas accès MATLAB ou le temps pour faire une réponse complète – fyrepenguin