read file containing mixed content
1 view (last 30 days)
Show older comments
Hello,
The format of an input text file is the following:
1 23.08 был
2 367.92 сказал
3 12567.53 когда
...
and so on.
How to read this file so that the following loop can be used:
for i=1:length(file)
str=fileName(i,3);
...
end
Thanks.
Accepted Answer
Image Analyst
on 8 Jan 2022
Try this:
% Get file name
fullFileName = fullfile(pwd, 'a.txt')
if ~isfile(fullFileName)
errorMessage = sprintf('Error: file not found:\n%s', fullFileName);
fprintf('%s\n', errorMessage)
uiwait(errordlg(errorMessage))
return;
end
% Open the file for reading in text mode.
fileID = fopen(fullFileName, 'rt');
% Read the first line of the file.
textLine = fgetl(fileID);
lineCounter = 1;
while ischar(textLine)
% Print out what line we're operating on.
fprintf('%s\n', textLine);
% Split into words.
words = strsplit(textLine);
% Assign to vectors
col1(lineCounter) = str2double(words{1});
col2(lineCounter) = str2double(words{2});
col3{lineCounter} = words{3};
% Read the next line.
textLine = fgetl(fileID);
lineCounter = lineCounter + 1;
end
% All done reading all lines, so close the file.
fclose(fileID);
% Transpose from row vectors into column vectors
col1 = col1'
col2 = col2'
col3 = col3'
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!