Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

partition

信号データストアの分割、および分割した部分の返却

説明

subsds = partition(sds,numPartitions,index) は、信号データストアを numPartitions で指定された数の部分に分割し、index に対応する区画を返します。

subsds = partition(sds,'Observations',index) は、信号データストアを分割し、index に対応する区画を Observations プロパティで返します。

  • sds にファイル データが含まれている場合、関数はファイルごとに信号データストアを分割します。

  • sds にインメモリ データが含まれている場合、関数はメンバーごとに信号データストアを分割します。

subsds = partition(sds,'Observations',obsname) は、信号データストアを分割し、観測名 obsname に対応する区画を返します。

  • sds にファイル データが含まれている場合、関数はファイルごとにデータストアを分割します。

  • sds にインメモリ データが含まれている場合、関数はメンバーごとにデータストアを分割します。

すべて折りたたむ

MATLAB® に含まれる信号の例へのファイル パスを指定します。指定したフォルダーを示す信号データストアを作成します。

folder = fullfile(matlabroot,'toolbox','matlab','audiovideo');
sds = signalDatastore(folder,'SampleRateVariableName','Fs');

信号データストアの区画の既定の数を取得します。

n = numpartitions(sds)
n = 7

データストアを既定の数の区画に分割し、4 番目の区画に対応するデータストアを返します。

subsds = partition(sds,n,4);

関数 extractAfter を使用して、4 番目の区画に対応するデータストアに含まれるファイルの名前を表示します。

fName = extractAfter(subsds.Files,'audiovideo\')
fName = 1×1 cell array
    {'laughter.mat'}

4 番目の区画に対応するデータストアの信号に関するデータと情報を読み取ります。struct info からサンプル レートを抽出し、信号を元のサンプル レートの半分にリサンプリングします。元の信号とリサンプリングした信号をプロットします。

while hasdata(subsds)
    [data,info] = read(subsds);
    fs = info.SampleRate;
    f_res = 0.5*fs;
    ts = (0:length(data)-1)/fs;
    data_res = resample(data,1,2);
    t_res = (0:length(data_res)-1)/f_res;
    plot(ts,data,t_res,data_res,':')
    xlabel('Time (s)')
    ylabel('Signal')
    legend('Original','Resampled','Location','NorthWest')
end

MATLAB® に含まれる信号の例へのパスを指定します。

folder = fullfile(matlabroot,'toolbox','matlab','audiovideo');

指定したフォルダーを示す信号データストアを作成します。

sds = signalDatastore(folder);

現在の並列プールについて、並列処理のための妥当な区画数に関する推定を返します。

pool = gcp;
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
n = numpartitions(sds,pool)
n = 7

信号データストアを分割し、各区画の信号データを読み取ります。

parfor ii = 1:n
    subds = partition(sds,n,ii);
    while hasdata(subds)
        data = read(subds);
    end
end

入力引数

すべて折りたたむ

信号データストア。signalDatastore オブジェクトとして指定します。

分割数。正の整数として指定します。関数 numpartitions (Audio Toolbox) を使用して numPartitions の妥当な値を推定します。

データ型: single | double

サブデータストアのインデックス。範囲 [1,numPartitions] の正の整数として指定します。

データ型: single | double

観測名。string スカラーまたは文字ベクトルとして指定します。

obsname の値は次のようになります。

  • ファイル名 (ファイル データの場合)

  • メンバー名 (インメモリ データの場合)

データ型: char | string

出力引数

すべて折りたたむ

出力信号データストア。signalDatastore オブジェクトとして返されます。

R2020a で導入