renaming files to easily read it in to matlab problematic
1 view (last 30 days)
Show older comments
Hello community,
i have a lot of files to rename, i want to do this because i want to read it into matlab with a loop and after that convert it into matrices etc....
The files are called this way
control(f) Jun 14, 2012 18-10-04.txt control(f) Jun 14, 2012 18-13-23.txt control(f) Jun 14, 2012 18-16-20.txt control(f) Jun 14, 2012 18-20-57.txt ... and so on.
I solved a similar problem where the files are called control(f) 1.txt control(f) 2.txt ... and so on.
with this code: b = 'control(f) '; f = '.txt'; ... for i = 1 : 486 j = j+1; var_end = num2str (i); data_str_control = [b,var_end,f]; ...
but i dont know how to handle the problem with the different times in the name of the file. The time in the file is not following a rule.
Thanks in advance,
0 Comments
Accepted Answer
Friedrich
on 28 Aug 2012
Edited: Friedrich
on 28 Aug 2012
Hi,
why renaming them? This is not needed. Use the dir command to get a struct array which contains also the filenames:
>> dir
. .. test.mat
>> files = dir
files =
3x1 struct array with fields:
name
date
bytes
isdir
datenum
>> for i=1:numel(files)
files(i).name
end
ans =
.
ans =
..
ans =
test.mat
You can use the isdir field of the struct to determine if the current element is really a file.
for i=1:numel(files)
if ~files(i).isdir
load(files(i).name) %or do whatever you like to do with that file
end
end
2 Comments
Friedrich
on 28 Aug 2012
Maybe use the fileparts function to check the extension of your files:
[pathstr, name, ext] = fileparts(files(i).name)
if strcmp(ext,'txt')
%do something
end
Or simply copy all the files you need to load into a seperate folder. Then you now that dir returns needed files only.
More Answers (0)
See Also
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!