readmatrix ignores the first line of the data file
115 次查看(过去 30 天)
显示 更早的评论
I'm trying to read a text filw with over 226,600 rows with readmatrix (sample is over 5MB so I couldn't attach it here). The first line is numeric but readtable ignores the first line. Following is the line I'm using is follows, and I do require the structure (with NaN) that this provides.
data = readmatrix('sample.txt', 'Delimiter',' ','ConsecutiveDelimitersRule', 'join');
I found a similar thread where table2array was suggested, but I get the "Input argument must be a table." error. How can I rectify this?
** edit: A trimmed sample file is uploaded.
2 个评论
Stephen23
2023-3-9
"How can I rectify this?"
Did you try specifying the first data line, or the number of header lines, or any other related options?
Please trim the file down a bit and upload it here.
采纳的回答
Stephen23
2023-3-9
编辑:Stephen23
2023-3-9
You can specify the RANGE as the starting row:
M = readmatrix('sample.txt', 'ConsecutiveDelimitersRule','join', 'Range',1)
I note that the data are arranged in blocks which span multiple lines. Note that if all files have a fixed, known format then you might consider using FSCANF to reads those blocks of data, giving one row per block, e.g.:
nmc = 15+12*4;
fmt = repmat('%f',1,nmc);
fid = fopen('sample.txt','rt');
mat = fscanf(fid,fmt,[nmc,Inf]).';
fclose(fid);
display(mat)
0 个评论
更多回答(1 个)
Sarvesh Kale
2023-3-9
You can open the text file in notepad and insert some text that best describes your data on the first line, from second line your data will start and I guess this should resolve your problem
Thank you
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Text Files 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!