Info
此问题已关闭。 请重新打开它进行编辑或回答。
create a table containing especific names of files selected from string in MATLAB
1 次查看(过去 30 天)
显示 更早的评论
Hi All,
I would like to create 3 lists with the names of files starting with png, jpg and bmp. All files are images inside the directory tree: /year_month/year_month_day/ as you can see here:
./20160203/20160203_png01_test1.png.tmp
./20160203/20160203_jpg01_test2.jpg.tmp
./20160203/20160203_bmp01_test3.bmp.tmp
./20160204/20160204_png01_test1.png.tmp
./20160204/20160204_jpg01_test2.jpg.tmp
./20160204/20160204_bmp01_test3.bmp.tmp
./20160205/20160205_png01_test1.png.tmp
./20160205/20160205_jpg01_test2.jpg.tmp
./20160205/20160205_bmp01_test3.bmp.tmp
every list should contain the pictures name for every extension (jpg, bmp and png) for example list1 should have:
./20160203/20160203_png01_test1.png.tmp
./20160204/20160204_png01_test1.png.tmp
./20160205/20160205_png01_test1.png.tmp
list2 should have:
./20160203/20160203_jpg01_test2.jpg.tmp
./20160204/20160204_jpg01_test2.jpg.tmp
./20160205/20160205_jpg01_test2.jpg.tmp
and list3 the same but with bmp...
my code look like this:
workdir = '/home/mati/201602/';
cd(workdir);
command = ['find -name *test*.tmp'];
[status,cmdout] = system(command);
c = strsplit(strtrim(cmdout));
n_files = length(c);
format_id=cell(n_files,1);
for ifile =1:n_files
d = textscan(c{ifile},'%s%s', 'Delimiter','_');
s1 = d{2}{:};
format_id{ifile} = s1;
end
format_id = unique(format_id);
nformat = length(format_id);
for iformat = 1:nformat
templist = [format_id{iformat} '.dat'];
fid = fopen(templist,'w');
for ifiles =1:n_files
fprintf(fid, '%6s\n', c{iformat});
end
fid = fclose(fid);
end
but in every list I am getting all the names.
I get the lists:
png01.dat
jpg01.dat
bmp01.dat
which is fine and is what I wanted to have, but in every list I have all the names of the pictures and not only the names with the respective extension.
First I would like to make an "index" in order to select only the files with the respective extension (bmp jpg and png) and then send them to a list. How could I do that?
I hope the problem is clear. Thanks in advance for your help.
0 个评论
回答(0 个)
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!