partition

Datastore сигнала раздела и возвращает разделенный фрагмент

Описание

пример

subsds = partition(sds,numPartitions,index) делит datastore сигнала в количество частей, заданных numPartitions и возвращает раздел, соответствующий index.

пример

subsds = partition(sds,'Observations',index) делит datastore сигнала и возвращает раздел, соответствующий index в Observations свойство.

  • Если sds содержит данные о файле, функциональные разделы datastore сигнала файлами.

  • Если sds содержит данные в оперативной памяти, функциональные разделы datastore сигнала членами.

subsds = partition(sds,'Observations',obsname) делит datastore сигнала и возвращается, раздел, соответствующий наблюдению, называют obsname.

  • Если sds содержит данные о файле, функциональные разделы datastore файлами.

  • Если sds содержит данные в оперативной памяти, функциональные разделы datastore членами.

Примеры

свернуть все

Задайте путь к файлу к сигналам в качестве примера, включенным с MATLAB®. Создайте datastore сигнала, который указывает на заданную папку.

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

Получите количество по умолчанию разделов для datastore сигнала.

n = numpartitions(sds)
n = 7

Разделите datastore в количество по умолчанию разделов и возвратите datastore, соответствующий четвертому разделу.

subsds = partition(sds,n,4);

Используйте extractAfter функционируйте, чтобы отобразить имя файла, содержавшегося в datastore, соответствующем четвертому разделу.

fName = extractAfter(subsds.Files,'audiovideo\')
fName = 1x1 cell array
    {0x0 char}

Считайте данные и информацию о сигнале в datastore, соответствующем четвертому разделу. Извлеките частоту дискретизации из 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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Resampled.

Задайте путь к директории, содержащей сигналы в качестве примера, включенные с MATLAB®.

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

Создайте datastore сигнала, который указывает на заданную папку.

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

Разделите datastore сигнала и считайте данные сигнала в каждой части.

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

Входные параметры

свернуть все

Datastore сигнала в виде signalDatastore объект.

Количество разделов в виде положительного целого числа. Используйте numpartitions (Audio Toolbox) функция, чтобы оценить рыночную стоимость для numPartitions.

Типы данных: single | double

Индекс подdatastore в виде положительного целого числа в области значений [1, numPartitions].

Типы данных: single | double

Имя наблюдения в виде строкового скаляра или вектора символов.

Значение obsname :

  • Имя файла в случае данных о файле.

  • Имя элемента в случае данных в оперативной памяти.

Типы данных: char | string

Выходные аргументы

свернуть все

Datastore выходного сигнала, возвращенный как signalDatastore объект.

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте