Listing mat files in a directory and checking to see if they have a particular file.
Mostra commenti meno recenti
Greetings I have been having a tough time creating a list of files (.mat files) in a directory in a listbox, and then checking to see if they contain a certain variable. I tried using uigetfile() but that hasn't panned out very well.
How do I get a list of files in a directory no matter what type they are and run a test on them to see if they contain a certain variable?
Thank you
Bill
Risposta accettata
Più risposte (2)
Walter Roberson
il 27 Ott 2011
hasvar = false;
try
s = whos('VariableYouWant', '-file', TheFileLocation);
if ~isempty(s); hasvar = true; end
catch
end
2 Commenti
K E
il 20 Lug 2012
To search recursively for all files with a mat extension in order to subsequently apply Walter's solution, use getfilenames.m . Just mentioning this in case someone else wants to perform a recursive search for all mat files containing a desired variable.
Walter Roberson
il 24 Mar 2021
A few years after the above comment from K E, MATLAB added the ability to search indefinite number of layers down:
dinfo = dir(fullfile(BaseFolder, '**', '*.mat'));
filenames = fullfile({dinfo.folder}, {dinfo.name});
The folder field returned by dir() was added at the same time,
William
il 27 Ott 2011
0 voti
2 Commenti
Fangjun Jiang
il 27 Ott 2011
uigetdir()
Walter Roberson
il 27 Ott 2011
uigetfile() if you want to choose which individual file to examine for the variable; uigetdir() if you want to choose which directory to examine. You would use uigetdir() together with dir() in order to examine all files in the chosen directory.
Categorie
Scopri di più su App Building in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!