I want to save a mat. file each time the program runs with a different name.

1 次查看(过去 30 天)
for example, when I run program for the first time i want to save it as ' text1.mat' second time 'text2.mat' etc...

采纳的回答

Jan
Jan 2017-11-28
编辑:Jan 2017-11-28
Folder = tempdir; % Define accordingly
FileList = dir(fullfile(Folder, 'text*.mat'));
NewFile = fullfile(Folder, sprintf('text%d.mat', numel(FileList) + 1));
This fails, if you delete some of the files afterwards. Then this helps:
NameList = natsort({FileList.name});
LastIndex = sscanf(NameList{end}, 'text%d.mat'));
NewFile = fullfile(Folder, sprintf('text%d.mat', LastIndex + 1));
Or prefer:
nowStr = datestr(now, 'yyyy-mm-dd_HHMMSS');
NewFile = fullfile(Folder, ['text', nowStr, '.mat']);
But remember that this fails, if you create more than 1 file per second or during the change of the daylight-saving-time.
  2 个评论
arvind ramasamy
arvind ramasamy 2017-11-28
the answers are useful.
I wish to know, I am giving a constant current everytime to predict the battery discharge .
so I am running a script which calculates lots of values. i am taking only 4 values out of it to plot my graph for different amps and compare it.
I save each one manually from workspace and load it again.
But i want now instead of manually doing it. the script has to automatically generate a name like this ' Test_1amp.mat, the next time when i give 2 amps test_2amp.mat
could you please help out in this??
Walter Roberson
Walter Roberson 2017-11-28
NameList = natsort({FileList.name});
LastIndex = sscanf(NameList{end}, 'test_%damp.mat'));
NewFile = fullfile(Folder, sprintf('test_%damp.mat', LastIndex + 1));

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by