このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
subset
データストアまたは FileSet のサブセットの作成
説明
例
ImageDatastore
のサブセットを作成
イメージの datastore オブジェクトを作成してから、そのイメージ データストアのサブセットを作成します。
サンプル フォルダー内のすべてのイメージ ファイル用のイメージ データストア imds
を作成します。次に、imds
の Files
プロパティを表示します。
folders = fullfile(matlabroot,'toolbox','matlab',{'demos','imagesci'}); exts = {'.jpg','.png','.tif'}; imds = imageDatastore(folders,'LabelSource','foldernames','FileExtensions',exts); imds.Files
ans = 8×1 cell array {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'} {'...\matlab\toolbox\matlab\demos\example.tif' } {'...\matlab\toolbox\matlab\demos\landOcean.jpg' } {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg' } {'...\matlab\toolbox\matlab\demos\street1.jpg' } {'...\matlab\toolbox\matlab\demos\street2.jpg' } {'...\matlab\toolbox\matlab\imagesci\corn.tif' } {'...\matlab\toolbox\matlab\imagesci\peppers.png' }
imds
の最初の 4 つのファイルを含むサブセット データストア subimds
を作成し、subimds
の Files
プロパティを確認します。
indices = 1:4; subimds = subset(imds,indices); subimds.Files
ans = 4×1 cell array {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'} {'...\matlab\toolbox\matlab\demos\example.tif' } {'...\matlab\toolbox\matlab\demos\landOcean.jpg' } {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg' }
ランダムに選択したファイルを含むサブセット データストアを作成
イメージ データストアを作成してから、元のデータストアから指定の割合でランダムに選択されたファイルのみを含むサブセット データストアを作成します。
サンプル フォルダー内のすべてのイメージ ファイル用に imageDatastore
を作成し、Files
プロパティを表示します。このデータストアには 8 つのファイルが含まれています。
folders = fullfile(matlabroot,'toolbox','matlab',{'demos','imagesci'}); exts = {'.jpg','.png','.tif'}; imds = imageDatastore(folders,'LabelSource','foldernames','FileExtensions',exts); imds.Files
ans = 8×1 cell array {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'} {'...\matlab\toolbox\matlab\demos\example.tif' } {'...\matlab\toolbox\matlab\demos\landOcean.jpg' } {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg' } {'...\matlab\toolbox\matlab\demos\street1.jpg' } {'...\matlab\toolbox\matlab\demos\street2.jpg' } {'...\matlab\toolbox\matlab\imagesci\corn.tif' } {'...\matlab\toolbox\matlab\imagesci\peppers.png' }
ファイルの 60%
を含み、ランダムに選択されたサブセットを表すインデックスのセットを作成します。
nFiles = length(imds.Files); RandIndices = randperm(nFiles); nSixtyPercent = round(0.6*nFiles); indices = RandIndices(1:nSixtyPercent)
indices = 8 6 4 5 1
indices
を使用してサブセット データストア submids
を作成し、その Files
プロパティを確認します。
subimds = subset(imds,indices); subimds.Files
ans = 5×1 cell array {'...\matlab\toolbox\matlab\imagesci\peppers.png' } {'...\matlab\toolbox\matlab\demos\street2.jpg' } {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg' } {'...\matlab\toolbox\matlab\demos\street1.jpg' } {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'}
データ粒度の比較
粒度の粗い分割と粒度の細かいサブセットを比較します。
ビデオ ファイル 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()))
入力引数
ds
— 入力のデータストアまたはファイル セット
matlab.io.Datastore
オブジェクト | FileSet
オブジェクト | DsFileSet
オブジェクト | BlockedFileSet
オブジェクト
入力のデータストアまたはファイル セット。datastore
、FileSet
、DsFileSet
、または BlockedFileSet
オブジェクトとして指定します。
indices
— サブセットに含めるファイルのインデックス
インデックスのベクトル | logical ベクトル
サブセットに含めるファイルのインデックス。インデックスのベクトルまたは logical ベクトルとして指定します。
インデックスのベクトルには、サブセット
subds
に含めるファイルのインデックスを含めなければならない。logical ベクトルの長さは、入力
ds
のファイル数と同じでなければならない。subset
メソッドは、値true
をもつ logical ベクトルの要素に対応するファイルを含むサブセットsubds
を作成します。
indices
の要素は一意でなければなりません。
データ型: double
| logical
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
使用上の注意事項および制限事項:
スレッドベースの環境では、次のデータストアでのみ
subset
を使用できます。ImageDatastore
オブジェクトcombine
またはtransform
を使用してImageDatastore
オブジェクトから作成するCombinedDatastore
、SequentialDatastore
、またはTransformedDatastore
オブジェクト
Parallel Computing Toolbox™ がある場合は、他のデータストアで
subset
を使用できます。これを行うには、backgroundPool
またはThreadPool
を使用する代わりに、プロセスベースの並列プールを使用して関数を実行します (ProcessPool
またはClusterPool
を使用します)。
詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2019a で導入
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)