finding files in a directory
25 次查看(过去 30 天)
显示 更早的评论
Hi,
I have text files that start with a1 , a2,a3b,a4b .. I was using the following loop to find the files in the directory that start with a1,a2,a3b,and ab4: for k=1:4 x={'1';'2';'3b';'4b';...} Files=dir(['a',x(k),'.txt.*']); end it didn't work because ??? Error using ==> dir Function is not defined for 'cell' inputs.
I know that it works for a1 and a2 if i substitute x(k)by num2str(1) and num2str(2) but what about a3b and a4b files?
0 个评论
采纳的回答
Walter Roberson
2011-8-15
Files = dir(sprintf('a%s.txt.*' x{k}));
Are you sure, by the way, that you have .txt followed by another extension such that a final * would be appropriate? Are you sure it isn't
Files = dir(sprintf('a%s*.txt', x{k}));
that you would prefer, with the wildcard between the initial letters and the .txt ?
0 个评论
更多回答(1 个)
Fangjun Jiang
2011-8-15
Files=dir(['a',x{k},'.txt.*'])
When you reference cell array, you need to use {}, not ().
1 个评论
Image Analyst
2011-8-15
That's one thing you learn with cell arrays - you usually pick the wrong ones to start with. So if () doesn't work, try {}, and if {} doesn't work, try (). It's an easy and quick debugging procedure that I think everybody uses fairly often when dealing with cell arrays.
另请参阅
类别
在 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!