2010-10-28 6 views
2

Salut les gars. J'ai de la difficulté à créer un nom de fichier. ok, voici ce que je veux faire: une fonction matlab appelée file_save (filename, input_data) est de sauvegarder les données dans un fichier xml. donc dans une boucle for, je veux créer un fichier XML avec nom de fichier séquentiel, par exemple. output1.xml output2.xml output3.xmlDifficulté à créer le nom de fichier

Je suppose qu'il existe un moyen de combiner le nom de fichier? Quelqu'un peut-il me donner de l'aide?

Merci!

+0

double de http://stackoverflow.com/questions/4039277/difficulty-in-creating-filename – zellus

+3

récursive en double? – Doresoom

+1

Un "uniplicate"? –

Répondre

2

Vous pouvez concaténer des chaînes de la même manière que des tableaux dans MATLAB. (En fait, les chaînes sont traités comme des tableaux de caractères.)

Pour fichier #n,

name='MyFile'; 
ext='.xml'; 
filename=[name,num2str(n),ext]; 

devrait vous obtenir ce que vous voulez.

Comme @ Andrew souligne dans les commentaires, vous pouvez également utiliser sprintf pour formater le nom du fichier:

filename = sprintf('MyFile%0*d.xml', ceil(log10(N+1)), n); 

où N est le nombre total de fichiers que vous prévoyez nommer, et n est votre version actuelle. Le ceil(log10(N+1)) vous donne le nombre de chiffres dont vous avez besoin pour un remplissage zéro correct.

@Azim souligne que num2str peut accomplir la même chose:

filename=[name,num2str(n,['%0' num2str(ceil(log10(N+1))),'d']),ext]; 
+2

Je pense que vous vouliez dire num2str (n) – Marm0t

+0

Oui vous ont raison, Marm0t. num2str (n) est correct. Merci à vous deux! – view

+0

Oups, merci pour le montage! – Doresoom

Questions connexes