How can I add sequential integers to .mat filename?

12 ビュー (過去 30 日間)
balsip
balsip 2015 年 11 月 30 日
コメント済み: the cyclist 2015 年 12 月 2 日
I have the following code running within a for loop, which appends a random integer to a .mat filename because it's using "randi". In some instances (random, naturally) this will generate a lower integer to a newer filename. This causes havoc in my data. How can I change this to make the integers increase sequentially with newer files?
dstr=num2str(d);
name=strcat('d',dstr,'_',num2str(randi([0 999])));
I'm betting that this may be as simple as changing "randi" to a function that's not random, but I can't find such a function, and it may have its own syntax peculiarities.
This is what the script is resulting in now, the six-digit number in between "d" and the underscore is a dating convention I need to keep:
  • d736209_021.mat
  • d736210_041.mat
  • d736211_073.mat
  • d736211_090.mat
d736211_073.mat is actually a newer file than d736211_090.mat; this is no good. This is the format I'd like with increasing suffix integers being newer files:
  • d736211_001.mat
  • d736211_002.mat
Thanks in advance.

採用された回答

the cyclist
the cyclist 2015 年 11 月 30 日
Can you just number them sequentially, like this?
d = 3;
dstr=num2str(d);
n=1;
name=strcat('d',dstr,'_',num2str(n))
n = n+1;
  8 件のコメント
balsip
balsip 2015 年 12 月 1 日
Cyclist, I owe you an apology and thanks. You were right, the problem was with me not knowing how to implement your answer. I ended up using the following adaptation of your suggestion:
itcount=0;
for i=1:(length(tmp)-1);
itcount=itcount+1;
dstr=num2str(d);
name=strcat('d',dstr,'_',num2str(itcount,'%03i'));
end
The '%03i' gave me the three digit format, so thanks to you, too, Sean. And now I have to go see 'Spectre.'
the cyclist
the cyclist 2015 年 12 月 2 日
No worries. Glad you got it to work.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by