Reading only numeric data in a text file

54 views (last 30 days)
Mahi Nazir
Mahi Nazir on 5 Nov 2014
Commented: Orion on 6 Nov 2014
I have a formatted text file (attached). I have to read it, ignoring some bits like the headings. After reading I should be able to get tx=2
and the 4x4 matrix which is there in the text file. Rest of the strings like the headings, sensor1, chirp1 etc must be ignored.
How can I do this?

Accepted Answer

Orion on 5 Nov 2014
it's almays more complicated to read a file with no defined data structure.
In your case, you can use (and adjust for other files)
% read the file
fid = fopen('FrequencyShiftsV1.txt','r');
MyTextFile = textscan(fid,'%s','delimiter','\n');
MyTextFile = [MyTextFile{:}];
% get and evaluate the lines 2 and 3 (matlab expression).
% extract the part containg the matrix to read
MatrixLines = MyTextFile(7:end);
% get rid of Chirp1, Chirp2, ...
MatrixLines = regexprep(MatrixLines,'Chirp[^%d]','');
% Convet the char into a numerical matrix.
MyMatrix = str2num(cell2mat(MatrixLines));
Orion on 6 Nov 2014
if there are more lines
chirp5 ...
chirp6 ...
chirpN ...
it will be read and converted by the command MatrixLines = MyTextFile(7:end);
so you will get a Nx4 numerical array.
just manipulate it to create all your matrices.
if N = 12, means 3 matrices:
for i = 1 : 3
SubMat{i} = MyMatrix(1+4*(i-1):4+4*(i-1),:);

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!