creating an array from a txt file
6 views (last 30 days)
Show older comments
sorry if this is a silly question, but I have just started to use matlab.
I am trying to create an array using the txt file 'ifng.txt' however I want to remove the first row as it is just headers, this is what I have so far
function output = IFNG2016
fid= fopen('ifng.txt','r');
A = textscan(fid, '%f', 'HeaderLines', 1)
however it just prints
A= [0x1 Double]
any assistance would be appreciated.
Thanks
6 Comments
Accepted Answer
Guillaume
on 28 Jun 2016
Edited: Guillaume
on 28 Jun 2016
The reason your textscan does not work is simply because the first column (the probe name) is not made of numbers so the '%f' format fails on that. This would work (and is much better than the whole file parsing suggested by Andreas):
fid= fopen('ifng.txt','r');
A = textscan(fid, ['%s', repmat('%f', 1 , 25)], 'HeaderLines', 1);
Anumbers = [A{2:end}];
Note that in the header, your file uses a combination of tabs and spaces as the delimiter. If you actually fixed that, then reading the file would be as simple as:
t = readtable('ifng.txt', 'Delimiter', 'tab'); %or 'space' if you replace the tabs by spaces
As a bonus you get the header read properly as variable names, so you don't even need to skip it.
4 Comments
Guillaume
on 29 Jun 2016
I tend to use format longg or format shortg, but that is completely unrelated to your original question (which I believe is solved, so you should accept the answer).
More Answers (0)
See Also
Categories
Find more on Matrix Indexing 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!