How to load numbers from a text file to a .mat file?

3 views (last 30 days)
Sweet Nemesis
Sweet Nemesis on 6 Jan 2022
Commented: _ on 6 Jan 2022
I have a text file in the following format. How can I load it to a .mat file in its present form?
5
3
3 2 3 4
2 -1 5
3 1 -3 -4
  4 Comments
Sweet Nemesis
Sweet Nemesis on 6 Jan 2022
I am ok with filling the missing values with zero or NaN to make a square matrix. How is that accomplished?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 6 Jan 2022
filename = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/855395/text.txt';
data = readmatrix(filename)
data = 3×4
3 2 3 4 2 -1 5 NaN 3 1 -3 -4
  2 Comments
Walter Roberson
Walter Roberson on 6 Jan 2022
filename = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/855395/text.txt';
opts = detectImportOptions(filename);
opts.DataLines = [1 inf];
data = readmatrix(filename, opts)
data = 5×4
5 NaN NaN NaN 3 NaN NaN NaN 3 2 3 4 2 -1 5 NaN 3 1 -3 -4

Sign in to comment.

More Answers (2)

Mathieu NOE
Mathieu NOE on 6 Jan 2022
hi
maybe this
(I assumed you want each individual value stored in a cell)
the cell array can be of course saved to a mat file
a = readcell('data.txt',"Delimiter"," ")
a = 5×4 cell array
{[5]} {1×1 missing} {1×1 missing} {1×1 missing}
{[3]} {1×1 missing} {1×1 missing} {1×1 missing}
{[3]} {[ 2]} {[ 3]} {[ 4]}
{[2]} {[ -1]} {[ 5]} {1×1 missing}
{[3]} {[ 1]} {[ -3]} {[ -4]}
save test.mat a
  1 Comment
Sweet Nemesis
Sweet Nemesis on 6 Jan 2022
Will this load like a matrix for operations? I am gettting a 1X4 cell with metadata.

Sign in to comment.


_
_ on 6 Jan 2022
You can read the file into a character array called text and save it to a .mat file:
% read characters from text file:
fid = fopen('text.txt');
text = fread(fid,'*char').';
fclose(fid);
% save to mat:
save('text.mat','text');
Then load the .mat file to check that it is the same as the text file:
S = load('text.mat');
disp(S.text);
5 3 3 2 3 4 2 -1 5 3 1 -3 -4
  2 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!