2010-10-28 5 views
2

Эй, ребята. Мне сложно создать имя файла. хорошо, вот что я хочу сделать: функция matlab, называемая file_save (filename, input_data), предназначена для сохранения данных в XML-файл. поэтому в цикле for я хочу создать xml-файл с последовательным именем файла, например. output1.xml output2.xml output3.xmlСложность при создании имени файла

Я предполагаю, что есть способ комбинирования имени файла? Может ли кто-нибудь мне помочь?

Спасибо!

+0

дубликат http://stackoverflow.com/questions/4039277/difficulty-in-creating-filename – zellus

+3

рекурсивных дубликата? – Doresoom

+1

«Односложный»? –

ответ

2

Вы можете объединить строки так же, как массивы в MATLAB. (На самом деле, строки рассматриваются как массивы символов.)

Для файла #n,

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

должны получить, что вы хотите.

Как отмечает @ Андрей в комментариях, вы можете также использовать Sprintf для форматирования файла:

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

где N общее число файлов, которые вы планируете на именования и п является текущей итерации. В ceil(log10(N+1)) вы получите количество цифр, необходимое для правильного ввода нулевого заполнения.

@Azim указывает на то, что num2str может сделать то же самое:

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

Я думаю, вы имели в виду num2str (n) – Marm0t

+0

Да вы правы, Marm0t. num2str (n) является правильным. Спасибо, вы двое! – view

+0

Упс, спасибо за редактирование! – Doresoom

Смежные вопросы