% Reads the first line (default)
s = readline('data.txt');
% Reads the 8th line
s = readline('data.txt',8);
% Reads the [1 2 4 8] lines
s = readline('data.txt',[1 2 4 8]);
% Reads last 7 lines
s = readline('data.txt',[-7; -1]);
% Or just, reads the whole file
s = readline('data.txt','all');
In general, the output is a cell of strings. You may force a string matrix output with a third argument
s = readline('data.txt','all','string');
Carlos Adrian Vargas Aguilera (2020). readline.m v4.0 (https://www.mathworks.com/matlabcentral/fileexchange/20026-readline-m-v4-0), MATLAB Central File Exchange. Retrieved .
Very handy, thanks for the submission
Is not true Gabriel, it need to be like that so to be able to generate range from negative inputs. The author.
When called readline(file, lines) and lines is a vector, it should not matter wether lines is a row or column vector.
Very practical and easy to use.
New version ready.
Us is terrible right... the code can be improved to be much more faster and it even has some errors (do not close the file, etc). Please wait to new submition...
sorry, but for once(!) i strongly and distinctly disagree with mr shvorob and jd: this is NOT the way to do it in a typical 21st century computational environment.
Sorry, I forgot to add the rating.
Yes, I agree with Dimitri. This is not a world class piece of code, in the sense that it solves some problem of Nobel prize importance. This is only a wrapper for some simple calls.
But as Dimitri said, it does what it claims to do. It is well documented. It has an H1 line, proper error messages. I find it a pleasure to see code well done. Maybe I'm just relieved to find something well done in comparison to the rest of the crop uploaded to the file exchange on this day. Regardless, I'll give this a 5 rating. If you need/want something that does what this does, then this code does it well.
Just for fun, Dimitri (and more clearer writing of course)...
So much code for a fairly straightforward FGETL wrapper? Still, it works, no complaints.
V4.0 Now accepts 'all' input. Uses TEXTSCAN instead of TEXTREAD.
V3.0 Rewritten code. Negative NLINES values now indicated number of line from the End-of-File, instead of from the last line. New pairwise optional inputs for TEXTSCAN.
1. I change the loops of FGETL by a single TEXTREAD function as suggested by Urs (us) Schwarz.
2. New easy way for the lines inputs. Now accepts ascending and descending (negative) ranges.
3. I eliminate the file identifier input.
Inspired by: saveascii.m v6.2 (Oct 2009)