Why does dir('*.mat') not list all of the .mat files in directory?

4 visualizzazioni (ultimi 30 giorni)
Hello,
I'm trying to create a structure file which lists all of the .mat files in my directory:
files = dir('*.mat')
This code returns a 4x1 structure, but I have 8 .mat files in the directory. All 8 of the .mat files are the same format (i.e. 3 variables per .mat file). Can anyone tell me why my other .mat files are not being listed in the struct file?
Thanks, Dan

Risposta accettata

Matt Fig
Matt Fig il 21 Ago 2012
Modificato: Matt Fig il 21 Ago 2012
Are you sure about those files being in there? Does WHAT see them (type: what) in there?
D = dir;
length(regexp([D(:).name],'\.mat')) % What does this say
  6 Commenti
Dan
Dan il 21 Ago 2012
Matt, your example above works just fine...now its just bugging me why DIR isn't working.
Thanks!

Accedi per commentare.

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 21 Ago 2012
Modificato: Azzi Abdelmalek il 1 Set 2012
try this
d=dir
d1=struct2cell(d);
d2=d1(1,:);
d3=cellfun(@(x) regexp(x,'.mat'),d2,'uni',false)
d4=find(~cellfun('isempty', d3))
files=d2(d4)'
  3 Commenti
Jan
Jan il 22 Ago 2012
~cellfun('isempty', d3) is faster than ~cellfun(@isempty, d3), which is faster than cellfun(@(x) ~isempty(x)).
Azzi Abdelmalek
Azzi Abdelmalek il 1 Set 2012
thanks Simon, did'nt read your comment until now.

Accedi per commentare.

Categorie

Scopri di più su File Operations in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by