重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!gooアプリ版

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

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

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

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

A 回答 (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)を入れて
おくなどの工夫をしておいた方が頭を使わなくてよいです^^;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!