2010-09-03 7 views
0

J'ai une variable qui doit dépendre d'une autre variable dans une boucle:Comment déclarer un nom de variable constitué d'autres variables (MATLAB)?

for n=1:100 

newfilename="NEW_FILE_1.txt" 

end 

où le « 1 » doit être ce que n est: Donc 1 pour la première boucle et 2 pour la deuxième boucle et ainsi de suite.

Comment configurer "newfilename" pour avoir la variable "n" variable dans son nom?

Merci

+0

Tourné dans l'obscurité: newfilename = "NEW_FILE _", n, ". Txt" –

+0

J'ai découvert qu'il y a plusieurs façons de le faire ... sprintf, fprintf ... et d'autres comme les réponses ci-dessous! Merci à tous pour votre aide! bonnes réponses! – dewalla

Répondre

5
for n=1:100 
    newfilename = ['NEW_FILE_' num2str(n) '.txt']; 
end 
5

Ou utiliser sprintf dans la boucle:

for n=1:100 
    newfilename = sprintf('NEW_FILE_%d.txt',n); 
end 
1

Si je votre question, vous voulez, à la fin de la boucle, d'avoir une série de variables appelé newfilename1, newfilename2 ... etc.

La réponse courte à ceci est: ne pas *. Au lieu de cela, placez vos données dans un réseau de cellules comme suit

for n=1:100 

    newFilename{n} = sprintf('NEW_FILE_%i.txt', n) 

end 

Vous pouvez alors se référer à vos variables comme newfilename {1}, {2} NewFileName, etc ...

* Il y a une manière pour faire ce que vous voulez en utilisant la fonction eval, et la méthode a été répondue dans d'autres publications. Mais c'est juste une mauvaise pratique.

+0

Vous n'avez pas besoin d'utiliser le tableau de cellules si newFilename ne doit être utilisé qu'une seule fois dans la boucle for. L'OP n'a pas dit qu'il voulait créer newFilename1, newFilename2, etc. Bon point quand même. – yuk

+0

La question dit explicitement "comment déclarer un nom de variable composé d'autres variables" ... Je suis d'accord que le reste de la question est floue, mais c'est ce que j'essayais d'aborder. – Kena

+0

Vous avez raison, le titre est très déroutant. – yuk

Questions connexes