salut tous,
je suis en train de lire des données dans un fichier et j'ai à un moment quelque chose qui ressemble à :
je voudrais avoir un bout de code qui permet de lire les lignes du fichiers et lorsque le premier mot de la phrase est "motClef " alors je doit conserver tous les nombres qui suivent et les mettre dans un vecteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part motClef 0 5 1 8 2 7 3 7
j'ai donc fait ceci :
à la fin de ce bon de code j'ai un tableau de type "cell" qui a 60lignes et une colonne avec dans chaque cases un string, voici un peut pret l'idée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 fid=fopen(['T' num2str(100) '.dat'],'rt'); while(true) line = fgetl(fid); if(line == -1);break;end motClef=textscan(line,'%s','delimiter',' '); aaa=motClef{1}; if (strcmp(aaa{1},'motClef')==1) ligneAtraiter=aaa; end end fclose(fid)
ligneAtraiter=
{motClef}
{99}
{5}
{1}
....
etc
je me suis donc dit "facile" il suffit de faire ceci pour avoir un vecteur :
le soucis est que ça ne marche pas du tout, ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part monVect=ligneAtraiter{2:end,1}';
j'ai donc regardé le contenu de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ??? Error using ==> ctranspose Too many input arguments.
et le voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part monVect=ligneAtraiter{2:end,1}
j'ai fais ligneAtraiter{2:end,1} mais le résultat est comme si j'avais fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part monVect=99
ligneAtraiter{2,1}
du coup, je ne comprends pas comment traiter ce tableau de cellules afin d'avoir un vecteur de nombres
la dernière chose que j'ai essayé c'est donc :
mais j'ai ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 monVect=str2num(ligneAtraiter{2:end,1})
du coup je ne sais plus du tout quoi faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ??? Error using ==> str2num Too many input arguments.
il y a un truc que je ne comprends pas dans la manipulation des string sous matlab
ps: au question j'ai une petit question :
=> si j'ai une ligne qui contient énorment de chiffres matlab a t il une limite à la lecture ? ne va t il pas tronquer la ligne ?
=> je pose cette question car je risque d'avoir des lignes tres longues à lire
merci d'avance pour toutes les réponses que vous pourrez me donner
Partager