Reading only numeric data in a text file
4 ビュー (過去 30 日間)
古いコメントを表示
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
ty=18
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?
0 件のコメント
採用された回答
Orion
2014 年 11 月 5 日
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');
fclose(fid);
MyTextFile = [MyTextFile{:}];
% get and evaluate the lines 2 and 3 (matlab expression).
eval(MyTextFile{2});
eval(MyTextFile{3});
% 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));
2 件のコメント
Orion
2014 年 11 月 6 日
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),:);
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Environment and Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!