2009-11-06 6 views
4

J'ai une boucle comme ceci:Comment créer une chaîne en utilisant une variable de boucle dans MATLAB?

for i=1:no 

    %some calculations 

    fid = fopen('c:\\out.txt','wt'); 
    %write something to the file 
    fclose(fid); 

end 

Je veux des données à écrire dans des fichiers différents comme ceci:

  • pour i=1, les données sont écrites à out1.txt
  • pour i=2, les données sont écrit à out2.txt
  • pour i=3, les données sont écrites à out3.txt
  • etc.

Faire 'out'+ i ne fonctionne pas. Comment cela peut-il être fait?

Répondre

5

Une autre option serait la fonction SPRINTF:

fid = fopen(sprintf('c:\\out%d.txt',i),'wt'); 
1

Avez-vous essayé:

int2str(i) 
3

filename = strcat('out', int2str(i), '.txt');

0

Plus simplement:

for i=1:no 
    %some calculations 
    fid = fopen(['c:\out' int2str(i) '.txt'],'wt'); 
    %write something to the file 
    fclose(fid); 

end 

PS. Je ne crois pas que les chaînes Matlab doivent échapper à l'exception de « » (à moins d'une chaîne de format pour les fonctions de style * printf)

EDIT: Voir le commentaire @MatlabDoug

+1

int2str (i) pas int2str (1) – MatlabDoug

Questions connexes