How to read array from a text file into each row of a matrix.
Show older comments
Hi,
I am trying to read a text file which contains arrays in each line. I am trying to read each line into new row of a matrix.
The text file is in the following format.
[255, 255, 0, 0, 11, 0, 1, 0, 11, 11, 11, 11, 11, 11]
[255, 255, 0, 0, 18, 0, 1, 0, 18, 18, 18, 18, 18, 18]
[255, 255, 0, 0, 12, 0, 1, 0, 12, 12, 12, 12, 12, 12]
[255, 255, 0, 0, 10, 0, 1, 9, 10, 218, 10, 138, 10, 58]
[255, 255, 0, 0, 4, 0, 1, 0, 4, 4, 4, 4, 4, 4]
.
.
.
I tried to do it using readmatrix but I am getting the following error.
Error using readmatrix (line 158)
Unable to find or open file. Check the path and
filename or file permissions.
Error in decodePyramid (line 9)
crc_ = readmatrix(dir+pktFile);
Any help is appreciated.
Thank you.
5 Comments
Voss
on 26 Feb 2022
The error seems to be about the location (or permissions) of the text file, rather than the format of the text file. You should verify that your variables dir and pktFile are defined correctly.
Raghav Rathi
on 26 Feb 2022
Scott MacKenzie
on 26 Feb 2022
Edited: Scott MacKenzie
on 26 Feb 2022
Try combining dir and pktFile like this:
crc_ = readmatrix(fullfile(dir, pktFile));
BTW, you will likely get NAN where the brackets appear.
Raghav Rathi
on 26 Feb 2022
Raghav Rathi
on 26 Feb 2022
Answers (2)
fid = fopen('input.txt');
data = str2num(fread(fid,'*char').');
fclose(fid);
disp(data);
Scott MacKenzie
on 26 Feb 2022
OK, this should work. First, combine dir and pktFile using the fullfile function. Read the data using readtable, then restore the 1st and last columns to numeric values (by removing the brackets and converting to double). If you want the data in a plain matrix, follow with table2array:
T = readtable(fullfile(dir, pktFile));
T.Var1 = cellfun(@(x) str2double(x), erase(T.Var1, '['));
T.Var14 = cellfun(@(x) str2double(x), erase(T.Var14, ']'));
crc_ = table2array(T);
Categories
Find more on Characters and Strings 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!