このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
partition
データストアを分割する
構文
説明
例
ファイルの大規模な集合のデータストアを作成します。この例では、サンプル ファイル airlinesmall.csv
の 10 個のコピーを使用します。表形式データの欠損フィールドを処理するには、名前と値のペア TreatAsMissing
と MissingValue
を指定します。
files = repmat({'airlinesmall.csv'},1,10); ds = tabularTextDatastore(files,... 'TreatAsMissing','NA','MissingValue',0);
データストアを 3 つの部分に分割し、最初の区画を返します。関数 partition
は、データストア ds
から最初の約 1/3 のデータを返します。
subds = partition(ds,3,1);
データストアの Files
プロパティには、データストア内のファイルのリストが格納されます。データストア ds
の Files
プロパティおよび分割されたデータストア subds
にあるファイルの数をチェックします。データストア ds
には 10 個のファイル、区画 subds
には最初の 4 つのファイルが格納されています。
length(ds.Files)
ans = 10
length(subds.Files)
ans = 4
関数 mapreduce
の出力ファイルであるサンプル ファイル mapredout.mat
からデータストアを作成します。
ds = datastore('mapredout.mat');
ds
の既定の分割数を取得します。
n = numpartitions(ds);
データストアを既定の数に分割し、最初の分割部分に対応するデータストアを返します。
subds = partition(ds,n,1);
subds
内のデータを読み取ります。
while hasdata(subds) data = read(subds); end
イメージ ファイルを 3 つ含むデータストアを作成します。
ds = imageDatastore({'street1.jpg','peppers.png','corn.tif'})
ds = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg'; ' ...\matlab\toolbox\matlab\imagesci\peppers.png'; ' ...\matlab\toolbox\matlab\imagesci\corn.tif' } ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage
データストアをファイル別に分割し、2 番目のファイルに対応する部分を返します。
subds = partition(ds,'Files',2)
subds = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\imagesci\peppers.png' } ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage
subds
にはファイルが 1 つあります。
関数 mapreduce
の出力ファイルであるサンプル ファイル mapredout.mat
からデータストアを作成します。
ds = datastore('mapredout.mat');
並列プール内の 3 個のワーカーに対して、データストアを 3 つの部分に分割します。
numWorkers = 3; p = parpool('local',numWorkers); n = numpartitions(ds,p); parfor ii=1:n subds = partition(ds,n,ii); while hasdata(subds) data = read(subds); end end
粒度の粗い分割と粒度の細かいサブセットを比較します。
ビデオ ファイル xylophone.mp4
のすべてのフレームを読み取り、反復処理するための ArrayDatastore
オブジェクトを作成します。結果のオブジェクトには 141 個のフレームがあります。
v = VideoReader("xylophone.mp4"); allFrames = read(v); arrds = arrayDatastore(allFrames,IterationDimension=4,OutputType="cell",ReadSize=4);
隣接するフレームの特定のセットを抽出するために、arrds
の粒度の粗い分割を 4 個作成します。35 個のフレームをもつ、2 番目の分割を抽出します。
partds = partition(arrds,4,2); imshow(imtile(partds.readall()))
粒度の細かいサブセットを使用して、指定されたインデックスにおける 6 個の隣接しないフレームを arrds
から抽出します。
subds = subset(arrds,[67 79 82 69 89 33]); imshow(imtile(subds.readall()))
入力引数
入力データストア。関数 datastore
を使用して、データから datastore オブジェクトを作成できます。
分割数。正の整数として指定します。
指定した分割数が、データストア内のファイル数の因数でない場合、partition
は残りの観測値を既存の区画に、最初の区画から順番に配置します。
追加の観測値がある既存のパーティションの数は、データストア内のファイル数を区画数で除算したときの剰余と等しくなります。たとえば、データストア オブジェクトに 23 個のファイルがあり、3 つの部分に分割する場合、partition
により作成される最初の 2 つの区画には 8 個のファイル、最後の区画には 7 個のファイルが含まれます。
例: 3
データ型: double
インデックス。正の整数として指定します。
例: 1
データ型: double
ファイル名。文字ベクトルまたは string スカラーとして指定します。
filename
の値は、データストアの Files
プロパティに含まれるファイル名と完全に一致しなければなりません。ファイル名を完全に一致させるには、ds.Files{N}
を使用して filename
を指定します。ここで N
は Files
プロパティ内のファイルのインデックスです。たとえば、ds.Files{3}
はデータストア ds
内の 3 番目のファイルを指定します。
例: ds.Files{3}
例: 'file1.csv'
例: '../dir/data/file1.csv'
例: 'hdfs://myserver:7867/data/file1.txt'
データ型: char
出力引数
出力データストア。出力データストアは、入力データストア ds
と同じ種類です。
拡張機能
使用上の注意および制限:
スレッドベースの環境では、次のデータストアでのみ
partition
を使用できます。ImageDatastore
オブジェクトcombine
またはtransform
を使用してImageDatastore
オブジェクトから作成するCombinedDatastore
、SequentialDatastore
、またはTransformedDatastore
オブジェクト
Parallel Computing Toolbox™ がある場合は、他のデータストアで
partition
を使用できます。これを行うには、backgroundPool
またはThreadPool
を使用する代わりに、プロセスベースの並列プールを使用して関数を実行します (ProcessPool
またはClusterPool
を使用します)。
詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2015a で導入
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)