Main Content

read

データ ストアのデータの読み取り

説明

data = read(ds) は、データ ストアからデータを返します。後続の関数 read の呼び出しでは、前回の呼び出しの終点から読み取りが続行されます。

[data,info] = read(ds) は、抽出されたデータに関する情報 (メタデータを含む) も info で返します。

すべて折りたたむ

表形式データが格納されたサンプル ファイル airlinesmall.csv からデータ ストアを作成します。

ds = tabularTextDatastore('airlinesmall.csv','TreatAsMissing','NA','MissingValue',0);

SelectedVariableNames プロパティを変更して対象の変数を指定します。

ds.SelectedVariableNames = {'DepTime','ArrTime','ActualElapsedTime'};

読み取り可能なデータがなくなるまで、データ ストアのデータを一度に 1 ブロックずつ読み取り、データを解析します。この例では、実際の経過時間の合計を求めます。

sumElapsedTime = 0;
while hasdata(ds)
    T = read(ds);
    sumElapsedTime = sumElapsedTime + sum(T.ActualElapsedTime);
end

実際の経過時間の合計を表示します。

sumElapsedTime
sumElapsedTime = 14531797

関数 mapreduce の出力ファイルであるサンプル ファイル mapredout.mat からデータ ストアを作成します。

ds = datastore('mapredout.mat');

データ ストアのデータのサブセットを読み取ります。

T = read(ds)
T=1×2 table
     Key        Value  
    ______    _________

    {'AA'}    {[14930]}

データ ストアの ReadSize プロパティを変更して、一度に読み取るキーと値のペアの数を変更します。

ds.ReadSize = 5;

データ ストアから次の 5 組のキーと値のペアを読み取ります。

T = read(ds)
T=5×2 table
     Key        Value  
    ______    _________

    {'AS'}    {[ 2910]}
    {'CO'}    {[ 8138]}
    {'DL'}    {[16578]}
    {'EA'}    {[  920]}
    {'HP'}    {[ 3660]}

基となるデータストアのイメージ ペア間のパリティを維持するデータストアを作成します。たとえば、2 つのイメージ データストアを個別に作成してから、2 つのイメージ データストアから対応するイメージを読み取る統合データストアを作成します。

3 つのイメージの集合を表すイメージ データ ストア imds1 を作成します。

imds1 = imageDatastore({'peppers.png','street1.jpg','street2.jpg'}); 

3 つのイメージの明るい領域のマスクを含む、2 番目のデータ ストア imds2 を作成します。このデータ ストアを作成するために、まず imds1 のイメージをグレースケールに変換します。次に、しきい値処理を実行して各イメージをバイナリ マスクに変換します。この例のしきい値処理では、値がしきい値 (250) を超えるピクセルを白、その他すべてのピクセルを黒にマップします。

imds2 = transform(imds1,@(x) im2gray(x)>250);

imds1imds2 から統合データ ストアを作成します。

imdsCombined = combine(imds1,imds2);

統合データ ストアから最初のデータ サブセットを読み取ります。出力は 1 行 2 列の cell 配列です。2 つの列は、それぞれ基となる 2 つのデータストア imds1 および imds2 から読み取った最初のデータ サブセットを表します。

dataOut = read(imdsCombined)
dataOut=1×2 cell array
    {384x512x3 uint8}    {384x512 logical}

統合データ ストアから読み取ったデータを、タイル イメージのペアとして表示します。

tile = imtile(dataOut);
imshow(tile)

Figure contains an axes object. The axes object contains an object of type image.

統合データストアから再度読み取ります。次の関数 read の呼び出しでは、前回の呼び出しの終点から読み取りが続行されます。

dataOut = read(imdsCombined)
dataOut=1×2 cell array
    {480x640x3 uint8}    {480x640 logical}

読み取ったデータを表示します。

tile = imtile(dataOut);
imshow(tile)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

入力データ ストア。次のデータ ストアを read メソッドの入力として使用できます。

出力引数

すべて折りたたむ

出力データ。ds の種類に従って table または配列として返されます。

データ ストアの種類data のデータ型説明
TabularTextDatastoreSpreadsheetDatastoretableテーブル変数は SelectedVariableNames プロパティにより決定されます。
ImageDatastore整数配列

整数配列の次元はイメージのタイプによって決まります。

  • グレースケール イメージの場合、data は m 行 n 列。

  • トゥルーカラー イメージの場合、data は m x n x 3。

  • CMYK Tiff イメージの場合、data は m x n x 4。

ReadSize プロパティが 1 より大きい場合、data は各イメージに対応するイメージ データの cell 配列です。関数 read は、関数 imread でサポートされるすべてのイメージ タイプをサポートします。サポートされるイメージ タイプの詳細については、imread を参照してください。

KeyValueDatastoretableテーブル変数名は KeyValue です。
FileDatastore場合により異なる出力は、'ReadFcn' 値で指定されるカスタム読み取り関数が返す出力と同じです。
TransformedDatastore場合により異なる出力は、TransformedDatastore の作成に使用される transform メソッドで指定された変換関数 @fcn の出力と同じです。
CombinedDatastore場合により異なる

対応する基となるデータストアから得た、read の出力の水平方向の連結が格納されます。

読み取ったデータに関する情報。構造体配列、または構造体配列の cell 配列として返されます。

  • MATLAB データ ストアと TransformedDatastore の場合、info はデータ ストアに関する情報を含むフィールドをもつ構造体配列。

  • CombinedDatastore の場合、info は構造体配列の cell 配列。cell 配列の各要素には、対応する基となるデータストアの関連フィールドをもつ構造体が格納されます。

構造体配列内の情報は、入力データ ストアのタイプによって決まります。この構造体配列には、次のフィールドを含めることができます。

フィールド名データ ストアの種類説明
FilenameImageDatastoreSpreadsheetDatastoreTabularTextDatastoreFileDatastoreKeyValueDatastoreTallDatastoreFilename は、パス文字列、ファイル名、およびファイル拡張子を含む、完全に解決されたパスです。ReadSize プロパティが 1 より大きい ImageDatastore オブジェクトの場合、Filename は各イメージに対応するファイル名の cell 配列です。
FileSize

ファイルの合計サイズ (バイト単位)。

ReadSize プロパティが 1 より大きい ImageDatastore オブジェクトの場合、FileSize は各イメージに対応するファイル サイズのベクトルです。

MAT ファイルの場合、FileSize の値はデータ ストアのタイプによって決まります。

  • KeyValueDatastore および TallDatastoreFileSize フィールドに、ファイル内のキーと値のペアの総数が格納されます。

  • FileDatastoreFileSize フィールドにファイルの合計サイズがバイト単位で格納されます。

FileTypeKeyValueDatastore のみ

データを読み取るファイルの種類。MAT ファイルの場合は 'mat'、シーケンス ファイルの場合は 'seq' です。

LabelImageDatastore のみ

イメージのラベル名。ReadSize プロパティが 1 より大きい場合、Label は各イメージに対応するラベル名のベクトルです。Labels プロパティが空の場合、Label は空の cell 配列です。

NumCharactersReadTabularTextDatastore のみ

読み取られた文字数。

NumDataRowsSpreadsheetDatastore のみ

各シートから読み取った行数を含むベクトル。

OffsetKeyValueDatastore および TabularTextDatastore のみ

読み取り操作の開始位置 (バイト単位)。MAT ファイルの場合、Offset は読み取る最初のキーと値のインデックスになります。

SheetNamesSpreadsheetDatastore のみ

読み取ったシートの名前。

SheetNumbersSpreadsheetDatastore のみ

読み取ったシートに関連付けられている番号。

拡張機能

バージョン履歴

R2014b で導入