ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fread (serial)

デバイスからバイナリ データを読む

構文

A = fread(obj)
A = fread(obj,size,'precision')
[A,count] = fread(...)
[A,count,msg] = fread(...)

説明

A = fread(obj) および A = fread(obj,size) は、シリアル ポート オブジェクト obj に接続しているデバイスからバイナリ データを読み取り、データを A に返します。読み取る値の最大数は、size で設定します。size が指定されていない場合、読み取る値の最大数はオブジェクトの InputBufferSize プロパティで定義されます。size に指定できる有効なオプションは以下のとおりです。

n

列ベクトルに最大 n 個の値を読み込みます。

[m,n]

列順で m 行 n 列の行列を最大 m 行 n 列読み込みます。

sizeinf を設定することはできません。指定した個数の値が入力バッファーに保存できない場合はエラーが発生します。size は InputBufferSize プロパティを使用して入力バッファーのバイト数でも指定できます。バイトで定義された値は、precision と乗算されます (以下を参照してください)。

A = fread(obj,size,'precision') は、precision で指定された精度により、バイナリ データを読み取ります。

precision は、各値の読み込みビット数を制御し、これらのバイト数を整数、浮動小数点数、文字値として解釈します。precision が指定されていない場合、uchar (符号なし 8 ビット文字) が使用されます。既定の設定では、数値は倍精度配列で返されます。precision でサポートされている値は、下記のヒントに一覧表示されています。

[A,count] = fread(...) は、読み取った値の数を count に返します。

[A,count,msg] = fread(...) は、読み取り操作が失敗した場合、警告メッセージを msg に返します。

ヒント

デバイスからデータを読み取るには、関数 fopen を使用して obj に接続されていなければなりません。接続されたシリアル ポート オブジェクトでは、Status プロパティの値が open になります。obj がデバイスに接続されていない間に、読み込み演算を行うと、エラーが返されます。

msg が出力引数として含まれていない場合に読み取り操作が正常に実行できなかった場合は、コマンド ラインに警告メッセージが返されます。

ValuesReceived プロパティ値は、fread が実行される度に、読み取った値の数ずつ増加します。

バイナリ読み取り操作を完了する際の規則

fread を使用した読み取り操作では、以下の状態になるまで、MATLAB® コマンド ラインへのアクセスができなくなります。

  • 指定した個数の値が読み込まれた場合

  • Timeout プロパティで指定した時間が経過する

    メモ:

    Terminator プロパティは、バイナリ読み取り操作では使用されません。

サポートされる精度

precision でサポートされている値を以下に示します。

データ型

精度

解釈

文字

uchar

8 ビット符号なし文字

schar

8 ビット符号付き文字

char

8 ビット符号付きまたは符号なし文字

整数

int8

8 ビット整数

int16

16 ビット整数

int32

32 ビット整数

uint8

8 ビット符号なし整数

uint16

16 ビット符号なし整数

uint32

32 ビット符号なし整数

short

16 ビット整数

int

32 ビット整数

long

32 または 64 ビット整数

ushort

16 ビット符号なし整数

uint

32 ビット符号なし整数

ulong

32 または 64 ビット符号なし整数

浮動小数点

single

32 ビット浮動小数点

float32

32 ビット浮動小数点

float

32 ビット浮動小数点

double

64 ビット浮動小数点

float64

64 ビット浮動小数点

R2006a より前に導入