2016-06-02 2 views
0

Предположим, у меня есть цикл for и вы хотите сохранить файл мата на каждой итерации с именем итерации. Я сделал это, как показано ниже, но это не сработает.Matlab: Как сохранить num2str (i) .mat в matlab?

clc; 
clear; 
for i=1:3 
    filename=num2str(i); 
    save(filename,'.mat') 
end 

ответ

1

Первый вход save должен быть строкой, вы передаете два входа в save (filename и '.mat'). save не имеет возможности автоматически комбинировать ваше имя с добавленным вами расширением .mat и вместо этого ищет переменную с именем '.mat', которая, очевидно, приведет к ошибкам.

Вы хотите объединить эти две строки в один строку (с использованием [] или strcat) и передать его в качестве первого вклада в save.

save([filename, '.mat']) 

В качестве альтернативы, вы могли просто предоставить filename, так как расширение .mat будет автоматически добавляться при условии, что filename уже не имеет расширение. Лично мне не нравится этот метод, поскольку я использую . в своих именах файлов, но если вы этого не сделаете, это, вероятно, сработает.

save(filename) 
Смежные вопросы