finding files in a directory

13 ビュー (過去 30 日間)
joseph Frank
joseph Frank 2011 年 8 月 15 日
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?

採用された回答

Walter Roberson
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 ?

その他の回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2011 年 8 月 15 日
Files=dir(['a',x{k},'.txt.*'])
When you reference cell array, you need to use {}, not ().
  1 件のコメント
Image Analyst
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 ExchangeFile Operations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by