Simply Directory Question

Hello All,
Quick question, I am trying to load all files from a folder that have a .m ext:
folder = C:\Users\ecorbett\Documents\MATLAB\UI\VCoachData\0005_Capture_10072009\AccelData
files = dir(folder)
I know I need to include something like '*.m' in dir but I dont know the correct syntax to do so. Can someone help me with this?

 采纳的回答

m=dir([folder '\*.m']);
files=arrayfun(@(x)m(x).name,1:numel(m),'uni',false); %or use Oleg suggestion

9 个评论

files = {m.name};
Thanks Oleg, I always forget that easy way to do it
what is this "name?" Is that my "folder"?
Check out the documentation for dir. Name is a field of the structure m.
No, in this context, "name" is a particular field from the structure returned by dir. m(K).name is the name of the K'th file, but without any parts of the folder name.
name is a field of the structure you get from the dir function, each file the dir function accepts creates a new entry on the structure with several fields, name being one of them.
I see! Thank you all! I feel like you guys are my professors sometimes lol
Think I'd be able to get Tenure? ;-)
You'd have my vote!

请先登录,再进行评论。

更多回答(2 个)

Hey guys, I'm still having trouble with this code. I've included the some more to give you a better understanding of what I'm tring to do.
I just want to get a dir (load .mat data files only) and loop through that dir until I match my pattern. Once I match, load construct fullfile.
[pathstr, name, ext] = fileparts(file)
name = 'AccelData';
file2 = fullfile(pathstr,[name])
z=dir([file2 '\*.m']);
files = {z.name}
Pattern=itemselected(1:9)
for i = 1 : numel(files)
value=files(i).name;
if strfind(value,Pattern)
f = fullfile(file2,value)
For some reason,
z=dir([file2 '\*.m']);
files = {z.name}
files is coming up empty. The way I had it before worked:
files = dir(folder)
But of course it included all file types and i just want the matlab data files.

4 个评论

z=dir([file2 '*.m']);
without the \
Still comes up empty.
z=dir([file2])
works. But the'*.m' is messing it up
0x1 struct array with fields:
name
date
bytes
isdir
datenum
can you show what's file2?

请先登录,再进行评论。

B_Richardson
B_Richardson 2011-8-5

0 个投票

I feel so stupid right now! My files are .mat not .m! AARRRGGGGGG Thanks everybody!!

类别

在 帮助中心 和 File Exchange 中查找有关 File Operations 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by