• 締切済み

Matlab,文字を含む数値データの読み込み

Matlabで,文字が含まれるデータから数値だけを読み込ませたいのですが,うまくいきません・・. データは,6行目まで文字が含まれており, その後100~120行ほど数値が存在します. 現在,dlmreadを用いて,その数値のみを抜きだそうと考えています. それぞれのデータ行数は分かっているため, 例えば最終行が109行目のものは dlmread ( filename , '\t' , 'A7..H109' ) という具合に書けるのですが, その行数がデータによって変化した場合, どのように読み込めばよいのでしょうか?

みんなの回答

  • kirinoma
  • ベストアンサー率53% (288/542)
回答No.1

test.txt ----------------- // comment1 honyarara // comment2 nantoka 12 58 32 15 68 56 13 75 98 ----------------- ・行数がデータによって変化する,というのの「行数」が,文字を含む行 を指している場合(6行だったのが5行になったりする): 文字列の頭が特定の文字形式(プログラムで言うコメント形式)に なっていれば,textscanを使用し,オプション'commentStyle'で, 特定文字列行をスキップすることで実現できます. c=textscan(fid,'%d','commentStyle','//'); ・行数がデータによって変化する,というのの「行数」が,数値行 を指している場合(109行が110行になったりする): 同様に,textscanを使用し,オプション'headerLines'で, 先頭の飛ばしたい文字列行数を指定することで実現できます. c=textscan(fid,'%d','headerLines',2); 両者とも,cは{[12;58;32;15;68;56;13;75;98];}というセル配列になります. まあ,実際は元のデータを作成するときに,最大の行数を決めてしまって, それ以下の行数になるときはダミーの文字やあり得ない数値(99999)を入れて おくなどの工夫をしておいた方が頭を使わなくてよいです^^;

関連するQ&A