arrayDatastore
インメモリ データのデータストア
説明
ArrayDatastore
オブジェクトを使用して、インメモリ データから作成されたデータトアを管理します。関数 arrayDatastore
を使用して ArrayDatastore
オブジェクトを作成し、そのプロパティを指定すると、オブジェクト関数を使用してデータのインポートおよび処理ができます。
作成
説明
入力引数
行列として指定される入力配列。
プロパティ
ArrayDatastore
プロパティは datastore オブジェクト内のインメモリ データの形式を記述し、データストアからデータを読み取る方法を制御します。datastore オブジェクトの作成時に、名前と値のペアの引数を使用して ArrayDatastore
プロパティの値を指定できます。オブジェクトの作成後にプロパティの表示または変更を行うには、ドット表記を使用します。
関数 read
の一度の呼び出しで読み取るデータの量。'ReadSize'
および正の整数として指定します。read
の呼び出しごとに、最大で ReadSize
行を読み取ります。入力データの行数を超える 'ReadSize'
の値を指定すると、read
では datastore オブジェクトのすべての行が読み取られます。
'ReadSize'
の既定値は 1
です。
データ型: double
関数 read
への呼び出しで読み取るときに使用する次元。'IterationDimension'
と正の整数で構成されるコンマ区切りのペアとして指定します。たとえば、'IterationDimension',2
を指定すると、read
は datastore オブジェクトから列方向データを返します。'IterationDimension'
の既定値は 1
で、read
は行方向のデータを返します。
'OutputType'
プロパティの値を 'same'
として指定する場合、'IterationDimension'
は 1 の値に設定しなければなりません。
ArrayDatastore
オブジェクトの作成後に 'IterationDimension'
の値を変更すると、MATLAB® ではデータストアが未読の状態にリセットされます。
データ型: double
出力データ型。'OutputType'
と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。
'cell'
— データを n 行 1 列の cell 配列として返します。たとえば、A
が数値配列で、ReadSize
が3
の場合、read
は数値データの 3 行 1 列の cell 配列を返します。'same'
— 入力配列A
と同じデータ型を返します。たとえば、A
が数値配列の場合、read
は数値配列を返します。
OutputType
の値により、関数 preview
、read
および readall
で返されるデータ型が決まります。
ArrayDatastore
オブジェクトの作成後に 'OutputType'
の値を変更すると、MATLAB ではデータストアが未読の状態にリセットされます。
データ型: char
| string
オブジェクト関数
例
行列から ArrayDatastore
オブジェクトを作成し、データストア内のすべてのデータを読み取ります。
行列を作成します。
A = magic(10)
A = 10×10
92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59
行列から ArrayDatastore
オブジェクトを作成します。
arrds = arrayDatastore(A)
arrds = ArrayDatastore with properties: ReadSize: 1 IterationDimension: 1 OutputType: "cell"
データストアのすべてのデータを読み取ります。
readall(arrds)
ans=10×1 cell array
{[ 92 99 1 8 15 67 74 51 58 40]}
{[ 98 80 7 14 16 73 55 57 64 41]}
{[ 4 81 88 20 22 54 56 63 70 47]}
{[ 85 87 19 21 3 60 62 69 71 28]}
{[ 86 93 25 2 9 61 68 75 52 34]}
{[ 17 24 76 83 90 42 49 26 33 65]}
{[ 23 5 82 89 91 48 30 32 39 66]}
{[ 79 6 13 95 97 29 31 38 45 72]}
{[ 10 12 94 96 78 35 37 44 46 53]}
{[11 18 100 77 84 36 43 50 27 59]}
データを n 行 1 列の cell 配列として返すのではなく、同じデータ型を入力配列として返します。
スプレッドシート ファイル counties.xlsx
から table を作成します。スプレッドシート内の 5 ~ 10 番目の列からすべての行をインポートします。
T = readtable("counties.xlsx","Range",[1,5,67,10])
T=66×6 table
CountyName State StateName Population2010 HousingUnits2010 LandArea
_______________________ ______ _______________ ______________ ________________ __________
{'Fairfield County' } {'CT'} {'Connecticut'} 9.1683e+05 3.6122e+05 1.6185e+09
{'Hartford County' } {'CT'} {'Connecticut'} 8.9401e+05 3.7425e+05 1.9039e+09
{'Litchfield County' } {'CT'} {'Connecticut'} 1.8993e+05 87550 2.3842e+09
{'Middlesex County' } {'CT'} {'Connecticut'} 1.6568e+05 74837 9.5649e+08
{'New Haven County' } {'CT'} {'Connecticut'} 8.6248e+05 3.62e+05 1.5657e+09
{'New London County' } {'CT'} {'Connecticut'} 2.7406e+05 1.2099e+05 1.722e+09
{'Tolland County' } {'CT'} {'Connecticut'} 1.5269e+05 57963 1.0624e+09
{'Windham County' } {'CT'} {'Connecticut'} 1.1843e+05 49073 1.3284e+09
{'Androscoggin County'} {'ME'} {'Maine' } 1.077e+05 49090 1.2119e+09
{'Aroostook County' } {'ME'} {'Maine' } 71870 39529 1.7279e+10
{'Cumberland County' } {'ME'} {'Maine' } 2.8167e+05 1.3866e+05 2.1633e+09
{'Franklin County' } {'ME'} {'Maine' } 30768 21709 4.3942e+09
{'Hancock County' } {'ME'} {'Maine' } 54418 40184 4.11e+09
{'Kennebec County' } {'ME'} {'Maine' } 1.2215e+05 60972 2.2469e+09
{'Knox County' } {'ME'} {'Maine' } 39736 23744 9.4569e+08
{'Lincoln County' } {'ME'} {'Maine' } 34457 23493 1.1806e+09
⋮
table からデータストアを作成します。'OutputType'
を 'same'
に設定して、同じデータ型を入力 table として返します。
arrds = arrayDatastore(T,"OutputType","same")
arrds = ArrayDatastore with properties: ReadSize: 1 IterationDimension: 1 OutputType: "same"
データストアのデータをプレビューします。
preview(arrds)
ans=8×6 table
CountyName State StateName Population2010 HousingUnits2010 LandArea
_____________________ ______ _______________ ______________ ________________ __________
{'Fairfield County' } {'CT'} {'Connecticut'} 9.1683e+05 3.6122e+05 1.6185e+09
{'Hartford County' } {'CT'} {'Connecticut'} 8.9401e+05 3.7425e+05 1.9039e+09
{'Litchfield County'} {'CT'} {'Connecticut'} 1.8993e+05 87550 2.3842e+09
{'Middlesex County' } {'CT'} {'Connecticut'} 1.6568e+05 74837 9.5649e+08
{'New Haven County' } {'CT'} {'Connecticut'} 8.6248e+05 3.62e+05 1.5657e+09
{'New London County'} {'CT'} {'Connecticut'} 2.7406e+05 1.2099e+05 1.722e+09
{'Tolland County' } {'CT'} {'Connecticut'} 1.5269e+05 57963 1.0624e+09
{'Windham County' } {'CT'} {'Connecticut'} 1.1843e+05 49073 1.3284e+09
MAT ファイルの変数のデータストアを作成してから、異なる ReadSize
値を指定してファイルからデータを読み取ります。
MAT ファイル BostonWeatherData.mat
をワークスペースに読み込みます。
load 'BostonWeatherData.mat'
変数 weatherData
のデータストアを作成します。ReadSize
を 10
行に設定します。ReadSize
値により、関数 read
の呼び出しごとにデータストアから読み取られるデータ行数が決まります。'OutputType'
を 'same'
に設定して、同じデータ型を入力配列として返します。
arrds = arrayDatastore(weatherData,"ReadSize",10, "OutputType","same")
arrds = ArrayDatastore with properties: ReadSize: 10 IterationDimension: 1 OutputType: "same"
データストアからデータを読み取ります。
data1 = read(arrds)
data1=10×3 timetable
Time TemperatureF Humidity Events
___________ ____________ ________ ____________
01-Jul-2015 72 78 Thunderstorm
02-Jul-2015 72 60 None
03-Jul-2015 70 56 None
04-Jul-2015 67 75 None
05-Jul-2015 72 67 None
06-Jul-2015 74 69 None
07-Jul-2015 75 77 Rain
08-Jul-2015 79 68 Rain
09-Jul-2015 66 77 Rain
10-Jul-2015 69 74 Rain
ReadSize
プロパティの値を 30
に設定して、データストアから読み取ります。関数 read
への 2 回目の呼び出しで、データストアから次の 30 行を読み取ります。
arrds.ReadSize = 30;
データストアからデータを読み取ります。
data2 = read(arrds)
data2=30×3 timetable
Time TemperatureF Humidity Events
___________ ____________ ________ ______
11-Jul-2015 76 49 None
12-Jul-2015 81 54 None
13-Jul-2015 72 81 None
14-Jul-2015 74 72 Rain
15-Jul-2015 75 87 Rain
16-Jul-2015 64 65 None
17-Jul-2015 68 72 None
18-Jul-2015 71 81 Rain
19-Jul-2015 81 73 Rain
20-Jul-2015 81 62 None
21-Jul-2015 76 66 None
22-Jul-2015 77 58 None
23-Jul-2015 75 52 None
24-Jul-2015 74 60 Rain
25-Jul-2015 66 81 None
26-Jul-2015 71 79 Rain
⋮
ArrayDatastore
から読み取るときに使用する次元を選択できます。たとえば、4 番目の次元で読み取って ArrayDatastore
にデータが格納されているビデオのフレームを読み取ることができます。
ビデオ データを読み込みます。ファイル xylophone.mp4
から VideoReader
オブジェクトを作成します。
v = VideoReader('xylophone.mp4');
VideoReader
オブジェクトからワークスペースにすべてのビデオ フレームを読み取ります。
allFrames = read(v);
読み取ったフレームからデータストアを作成します。'IterationDimension'
を 4
に設定し、その 4 番目の次元でデータを読み取ります。'OutputType'
を 'cell'
に設定し、データを cell 配列として返します。'ReadSize'
を 4 に設定し、関数 read
への各呼び出しで 4 つのビデオ フレームを読み取ります。
arrds = arrayDatastore(allFrames,"IterationDimension",4,"OutputType","cell","ReadSize",4)
arrds = ArrayDatastore with properties: ReadSize: 4 IterationDimension: 4 OutputType: "cell"
データストアの最初の 4 つのビデオ フレームを四角形内の整列イメージとして読み取り、表示します。
frames = read(arrds); imout = imtile(frames); imshow(imout)
ヒント
バージョン履歴
R2020b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)