manipuler sortie de textscan
salut tous, :lol:
je suis en train de lire des données dans un fichier et j'ai à un moment quelque chose qui ressemble à :
Code:
motClef 0 5 1 8 2 7 3 7
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.
j'ai donc fait ceci : :roll:
Code:
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) |
à 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 :
ligneAtraiter=
{motClef}
{99}
{5}
{1}
....
etc
je me suis donc dit "facile" 8-) il suffit de faire ceci pour avoir un vecteur :
Code:
monVect=ligneAtraiter{2:end,1}';
le soucis est que ça ne marche pas du tout, ça donne : :aie:
Code:
1 2 3
|
??? Error using ==> ctranspose
Too many input arguments. |
j'ai donc regardé le contenu de :
Code:
monVect=ligneAtraiter{2:end,1}
et le voici :
j'ai fais ligneAtraiter{2:end,1} mais le résultat est comme si j'avais fait :
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 :
Code:
1 2
|
monVect=str2num(ligneAtraiter{2:end,1}) |
mais j'ai ce message d'erreur :
Code:
1 2
| ??? Error using ==> str2num
Too many input arguments. |
du coup je ne sais plus du tout quoi faire :cry:
il y a un truc que je ne comprends pas dans la manipulation des string sous matlab :cry:
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
:ccool: