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 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by