こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

Matlabで,文字が含まれるデータから数値だけを読み込ませたいのですが,うまくいきません・・.

データは,6行目まで文字が含まれており,
その後100~120行ほど数値が存在します.

現在,dlmreadを用いて,その数値のみを抜きだそうと考えています.

それぞれのデータ行数は分かっているため,
例えば最終行が109行目のものは
dlmread ( filename , '\t' , 'A7..H109' )
という具合に書けるのですが,
その行数がデータによって変化した場合,
どのように読み込めばよいのでしょうか?

投稿日時 - 2009-01-12 20:14:47

QNo.4625127

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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)を入れて
おくなどの工夫をしておいた方が頭を使わなくてよいです^^;

投稿日時 - 2009-01-29 17:17:54

あなたにオススメの質問