MATLAB Function Reference    

fscanf (serial)

デバイスからデータを読みます。そして、テキストとして書式化します。

表示

引数

obj
シリアルポートオブジェクト
'format'
C 言語変換指定子
size
読み込む値の数
A
デバイスから読み込まれたデータで、テキストとして書式化されます。
count
読み込んだ値の数
msg
読み込み操作が失敗した場合に示すメッセージ

詳細

A = fscanf(obj) は、obj に接続しているデバイスからデータを読み、A に出力します。データは、%c フォーマットを使って、テキストに変換されます。

A = fscanf(obj,'format') は、データを読み、format に従って変換します。format は、C 言語変換指定子です。変換指定子は、% キャラクタや変換キャラクタ d, i, o, u, x, X, f, e, E, g, G, c, s を含んでいます。より詳細は、sscanf ファイル I/O フォーマット指定子やC マニュアルを参照してください。

A = fscanf(obj,'format',size) は、size で指定された値の数を読みます。size で設定できる正しいオプションは、つぎのものです。

n
高々n 個の値を列ベクトルの中に読む
[m,n]
m 行 n 列の行列の高々 個の値を列方向に読み込む

size では、inf を設定することはできません。size に指定した値が、入力バッファ内にストアできない場合は、エラーを出力します。size が、[m,n] の型をしていなく、キャラクタ変換が指定されている場合、A は、行ベクトルとして出力されます。InputBufferSize プロパティを使って、入力バッファのサイズを指定することができます。

[A,count] = fscanf(...) は、読み込んだ値の数を count に出力します。

[A,count,msg] = fscanf(...) は、読み込み操作が失敗した場合、ワーニングメッセージを msg に出力します。

注意

デバイスからデータを読む前に、関数 fopen を使って、obj に接続する必要があります。接続したシリアルポートオブジェクトは、openStatus プロパティ値としています。obj がデバイスに接続していない場合に読み込み操作を実行しようとすると、エラーを生じます。

msg が、出力引数として含まれていなく、読み込み操作が失敗した場合、ワーニングメッセージがコマンドラインに出力されます。

ValuesReceived プロパティ値は、fscanf が起動する度に、読み込んだ値の数だけ増加します。この中には、終端子も含まれます。

fscanf に関するヘルプ表示を help コマンドを使って行う場合、つぎのパス名を与える必要があります。

fscanf を使って、読み込み操作を完了するときのルール

fscanf を使った読み取り操作は、つぎの事柄が終了するまで、MATLAB コマンドへのアクセスを停止します。

例題

シリアルポートオブジェクト s を作成し、Tektronix TDS 210 オシロスコープに接続します。Tektronix TDS 210 は、サイン波を表示しています。

関数 fprintf を使って、サイン波のピークからピークまでの電圧を測定するためにスコープを作成し、測定タイプを出力し、電圧を出力します。

ReadAsyncMode プロパティに対するデフォルト値は、continuous なので、2つの抽出コマンドに関連したデータは、自動的に入力バッファに戻ります。

fscanf を使って、測定タイプを読みます。操作は、最初の終端子が読み込まれると終了します。

fscanf を使って、ピークからピークまでの電圧を浮動小数点で終端子を含まないで読みます。

スコープから s の接続を外し, メモリとワークスペースから s を取り除きます。

参考

関数

fgetl, fgets, fopen, fread, strread

プロパティ

BytesAvailable, BytesAvailableAction, Status, Terminator, Timeout


  fscanf fseek