How to open multiple text files and populating matrices with the data
2 次查看(过去 30 天)
显示 更早的评论
I have written the following codes to open a text file and populate a matrix with the data. It works fine.
fid=fopen('01_06_13hi.txt'); %Opens the file
allData =[]; %Creats a matrix to store all data
n = 0;
while feof(fid)== 0;
d1 = fgetl(fid); % reading the file line by line
if strfind(d1,'-NaN') %Overrules the 'Not a Number' value
else
n=n+1;
ind= find(d1(:)==':'); %finds ':' in the data string and storing in variable 'ind'
ind2 = find(d1(:)=='/'); %finds '/' in the data string and storing in variable 'ind2'
d1(ind) = ' '; %string data
d1(ind2) = ' '; %string data
d2 = str2num(d1); % converting the data from string to number
allData(n,:) = d2; %Storing data of d2
end
end
Now I have some 630 .txt files. I have tried to modify the the code as follows:
filesFolder = 'lo_hi1/';
allTextFiles = dir([filesFolder,'*.txt']);
numberOfTextFiles = numel(allTextFiles);
nameOfTextFiles = {allTextFiles.name};
allData =[];
n = 0;
for i=1:numberOfTextFiles
fileID=fopen(nameOfTextFiles{i});
while feof(fileID)== 0;
d1 = fgetl(fileID);
if strfind(d1,'-NaN')
else
n=n+1;
ind= find(d1(:)==':');
ind2 = find(d1(:)=='/');
d1(ind) = ' ';
d1(ind2) = ' ';
d2 = str2num(d1);
allData(n,:) = d2;
end
end
fclose(fileID); %closing the file
end
I expected it to work but unfortunately it is not working. The command window showed the following:
Error using feof Invalid file identifier. Use fopen to generate a valid file identifier.
Error in multifileload (line 15) while feof(fileID)== 0;
Can anyone help me out?
2 个评论
dpb
2016-11-19
Well, what does "not working" mean, precisely? We don't have your data so can't run it and can't see your terminal from here, either...
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Low-Level File I/O 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!