Main Content

read

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

説明

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

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

すべて折りたたむ

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

ds = tabularTextDatastore("airlinesmall_subset.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 = 154759

関数 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)

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

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

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

tile = imtile(dataOut);
imshow(tile)

入力引数

すべて折りたたむ

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

出力引数

すべて折りたたむ

出力データ。入力 ds の種類に従って table、timetable、または配列として返されます。data 出力は、インポート構成と組み合わせた関数 read の特定の呼び出しで読み取られたデータ量が値を返さない場合、空にすることができます。

データストアの種類data のデータ型説明
TabularTextDatastoreSpreadsheetDatastore、および ParquetDatastoretable または timetableテーブル変数は SelectedVariableNames プロパティにより決定されます。OutputType プロパティは、出力が table か timetable かを判別します。
ImageDatastore整数配列

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

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

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

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

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

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

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

SequentialDatastore場合により異なる現在の基となるデータストアから得た、read のシーケンシャルな出力が格納されます。

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

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

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

  • SequentialDatastore の場合、info のデータ型と形式は、現在の基となるデータストアと同じになります。

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

フィールド名データストアの種類説明
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 で導入