What to do about zeros in filenames when importing data to cell using sprintf ...

5 ビュー (過去 30 日間)
Peter Beringer
Peter Beringer 2020 年 10 月 18 日
コメント済み: Ameer Hamza 2020 年 10 月 18 日
This seems like it would be a fairly common problem, yet I haven't found any documentation or on Answers relating to this. So if anyone has a handy link, that'd be great (maybe it's too specific).
I have ten datasets in *.MAT format named sequentially:
Position01.mat, Position02.mat ... through to ... Position10.mat
Importing Position01 to Position09 to a cell is no issue, but opening and importing "Position10.mat" is made tricky because the number in its filename is "formatted" differently; specifically, doesn't start with zero. So, I'm wondering if I can keep my filenames, which keep the files nicely organised and in order outside MATLAB and find a workaround for dealing with "Position10.mat".
I'm currently using these lines to import the files ...
NumFiles = 10;
AudioCell = cell(1, NumFiles);
for k = 1: NumFiles
Position = sprintf('Position0%d.mat', k);
AudioCell{k} = importdata(Position);
end
It imports Position01 - Position09 exactly how I want, but Position10 has me stumped. Is changing the *.MAT filenames to "Position1", "Position2" and so on, my only decent option? So ...
Position = sprintf('Position%d.mat', k);
Thanks in advance!

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 10 月 18 日
編集済み: Ameer Hamza 2020 年 10 月 18 日
No, this is not the only option. The correct way is to use format specifier of sprintf() to add zeros automatically
sprintf('Position%02d.mat', k);
This will try to replace %02d with 2 digits. If k = 1 to 9, then it will append a zero.
  5 件のコメント
Peter Beringer
Peter Beringer 2020 年 10 月 18 日
I really appreciate it. Thanks so much again!
And thanks a bunch for the link! I reckon sometimes just finding out the correct terminology for something - "formatSpec", for example, which is a term I hadn't even come across when trying to solve this - makes such a huge difference when looking things up; vague search terms make wading through the results a frustrating task. Maybe sometimes the best questions to ask are just things like "what's this oscure looking character sequence called?". Hehe.
Cheers!
Ameer Hamza
Ameer Hamza 2020 年 10 月 18 日
Ture, sometimes all one needs is a correct hint, and the rest is easy to figure out.

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

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by