dlmread filename not a character vector
3 views (last 30 days)
Show older comments
Hello, I am having problems using dlm read within a for loop. I would like to define a directory my files are in, the basic name of my files, a sequence of numbers at the end of my filename, and the file extension. An example of the filenames is as follows.
folder1/folder2/folder3/filename_000.txt
folder1/folder2/folder3/filename_001.txt
folder1/folder2/folder3/filename_002.txt
This continues up to n files. I would then like to read each file and take out specific data, hence the dlmread function.
What I have is as follows:
file_directory = 'folder1/folder2/folder3/';
file_prefix = 'filename_';
%My numbers 000, 001, 002, 003, etc. are all contained within an array called: A
file_suffix = '.txt';
for i=1:n %n for the number of files I want to load
filename = [file_directory file_prefix A(i) file_suffix];
temp=dlmread(filename ,'', [17 0 3664 1]);
end
The code runs until temp=dlmread... wherein it gets an error of, "Filename must be a character vector."
Any way on how to fix this?
1 Comment
Bob Thompson
on 15 Feb 2018
I would try defining the file name as:
filename = strcat('folder1/folder2/folder3/filename_',num2str(A(i)),'.txt');
or
filename = sprintf('folder1/folder2/folder3/filename_%d.txt',A(i));
This will eliminate the need to define the directory and such ahead of time.
Alternatively you can try to use the uigetfile() command. I personally use this option more as it allows me a little more freedom as the script user, and when combined with the directory using fullfile() I can give the directory and all through a basic for loop.
[filenames,filedir] = uigetfile('*.txt','','Multiselect','on')
filepath = fullfile(filedir,filenames);
for i = 1:n
temp = dlmread(filepath(i),'',[17 0 3664 1]);
end
Accepted Answer
More Answers (1)
Walter Roberson
on 15 Feb 2018
Use fullfile and sprintf together. For the numeric field use a %03d format specification in sprintf
0 Comments
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!