dlmread filename not a character vector
Afficher commentaires plus anciens
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 commentaire
Bob Thompson
le 15 Fév 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
Réponse acceptée
Plus de réponses (1)
Walter Roberson
le 15 Fév 2018
0 votes
Use fullfile and sprintf together. For the numeric field use a %03d format specification in sprintf
Catégories
En savoir plus sur MATLAB Compiler dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!