How do I name a file from part of the file name read in?
3 ビュー (過去 30 日間)
古いコメントを表示
I would like to read in files from a directory, store their names, modify the files, and write out new files with a name based on the files read in. I have a solution that takes the first 8 characters of the read in file and uses that as part of the new written file. But, I would like the code to take the part of the name before a specific character is observed (an underscore "_") because the number of characters changes depending on the samples I'm analyzing. The file I read in is named "6145abc_acquired.txt" and I would like to name the written file "6145abc-ave100raw.txt".
Here's part of my current code:
files = dir('*.txt');
numfiles = numel(files);
for i=1:length(files)
filename = files(i).name;
[~,name] = fileparts(filename);
nameaves = name(1:8);
... in here I process the data creating the variable ave100...
dlmwrite([nameaves, '-ave100raw' '.txt'], ave100, '\t');
end
I would like to modify the name(1:8) to something that's more flexible and includes only what comes before the underscore "_".
Thanks.
0 件のコメント
採用された回答
AJ von Alt
2014 年 1 月 27 日
Replace
nameaves = name(1:8);
With:
namesplit = strsplit( name , '_' );
nameaves = namesplit{1};
0 件のコメント
その他の回答 (1 件)
Image Analyst
2014 年 1 月 27 日
Try this:
filename = '6145abc_acquired.txt'
underlineIndex = find(filename == '_', 1, 'first')
newFileName = sprintf('%s-ave100raw.txt', filename(1:underlineIndex-1))
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で File Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!