Reading data row by row into matlab.
Mostra commenti meno recenti
I need to read a text file, row by row, into different variables for the first 5 rows. Afterwards an N x M matrix needs to be read in. Is there a simple way to do this? I've tried to use textrfead, fopen, etc, but can't figure out how to get just the numbers I need.
this would be a sample file:
8
10
12 15 12 18 17 19 14 16
200 155 487 632 526 321 845 80
52 41 78 62 32 45 67 85 29 10 15
followed by a matrix of size 8 x10 (the matrix will always be size of the first two inputs)
Sorry, I uploaded two sample files. I know how to read in everything but the matrix at the end. That's what I need help retrieving from the files.
2 Commenti
Kevin Chng
il 22 Feb 2019
It is a bit confusing about
for the first 5 rows. After words an N x M matrix needs to be read in.
I guess you are only wanted to read certain line in your text file.
If you could upload your text file, and let us know which line you want to read, i can try to write the code for you here.
Jorge Guzman
il 29 Mar 2019
Risposta accettata
Più risposte (1)
Are Mjaavatten
il 22 Feb 2019
I often find it useful to read the file into a cell array of strings using textscan. Then I can easily experiment with how to best parse each line. In your case, this resulted in:
fid = fopen(filename);
lines = textscan(fid,'%s','delimiter','\n');
fclose(fid);
lines = lines{1};
n = sscanf(lines{1},'%d');
m = sscanf(lines{2},'%d');
% parse lines 3-5
M = zeros(n,m);
for i = 1:n
M(i,:) = sscanf(lines{5+i},'%f')';
% Alternatively:
% M(i,:) = str2num(lines{5+i});
end
1 Commento
Yasir Iqbal
il 16 Nov 2021
Brilliant
Categorie
Scopri di più su Text Files in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!