arrayDatastore
説明
ArrayDatastore
オブジェクトを使用して、インメモリ データから作成されたデータトアを管理します。関数 arrayDatastore
を使用して ArrayDatastore
オブジェクトを作成し、そのプロパティを指定すると、オブジェクト関数を使用してデータのインポートおよび処理ができます。
作成
説明
入力引数
A
— 入力配列
行列
行列として指定される入力配列。
プロパティ
ArrayDatastore
プロパティは datastore オブジェクト内のインメモリ データの形式を記述し、データストアからデータを読み取る方法を制御します。datastore オブジェクトの作成時に、名前と値のペアの引数を使用して ArrayDatastore
プロパティの値を指定できます。オブジェクトの作成後にプロパティの表示または変更を行うには、ドット表記を使用します。
ReadSize
— 読み取るデータの量
1
(既定値) | 正の整数
関数 read
の一度の呼び出しで読み取るデータの量。'ReadSize'
および正の整数として指定します。read
の呼び出しごとに、最大で ReadSize
行を読み取ります。入力データの行数を超える 'ReadSize'
の値を指定すると、read
では datastore オブジェクトのすべての行が読み取られます。
'ReadSize'
の既定値は 1
です。
データ型: double
IterationDimension
— 読み取るときに使用する次元
1
(既定値) | 正の整数
関数 read
への呼び出しで読み取るときに使用する次元。'IterationDimension'
と正の整数で構成されるコンマ区切りのペアとして指定します。たとえば、'IterationDimension',2
を指定すると、read
は datastore オブジェクトから列方向データを返します。'IterationDimension'
の既定値は 1
で、read
は行方向のデータを返します。
'OutputType'
プロパティの値を 'same'
として指定する場合、'IterationDimension'
は 1 の値に設定しなければなりません。
ArrayDatastore
オブジェクトの作成後に 'IterationDimension'
の値を変更すると、MATLAB® ではデータストアが未読の状態にリセットされます。
データ型: double
OutputType
— 出力データ型
'cell'
(既定値) | 'same'
出力データ型。'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 オブジェクトの作成
行列から 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
ArrayDatastore の読み取りサイズの指定
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 コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)