Вырезать аудиосигнал в определенных сегментах. (Matlab)

#matlab

#matlab

Вопрос:

Я пытаюсь вырезать аудиосигнал в определенном сегменте в мс. Я попробовал приведенный ниже код, и он работает нормально, но только для одного сегмента. Как я могу вырезать сигнал в нескольких сегментах?

 [y,Fs] = audioread('myAudioData.wav');
cutData = y((Fs * (1 - 1))   1 : Fs * (2 - 1), :);
plot(linspace(1, 2, length(cutData)), cutData);
  

ОТРЕДАКТИРОВАНО

 [y,Fs] = audioread('myAudioData.wav');
 nSamOr=length(y);
 zVec=7865657/10^9;
zVecE=zVec 0.050;
zVecS=zVec-0.050;
startTime = ((zVecS   (zVecE-zVecS))/(2 - 10));
EndTime = ((zVecS   (zVecE-zVecS))/(2   10));
cutData = y((Fs * (startTime))   1 : Fs * (EndTime ), :);
plot(linspace(1, 2, length(cutData)), cutData);
  

Я получаю следующую ошибку:
Индекс в позиции 1 недопустим. Индексы массива должны быть целыми положительными числами или логическими значениями.

Ошибка в Test1 (строка 9) cutData = y((Fs * (время начала)) 1 : Fs * (время окончания), :);

Любой, кто может помочь, почему я получаю эту ошибку?

Комментарии:

1. Вы можете вставить код, который теперь извлекает один сегмент в for цикле; в зависимости от ваших потребностей, начальная и конечная точки каждого сегмента могут быть заданы в массиве перед циклом или вычисляться на каждой итерации, поэтому они будут использоваться для извлечения данных в cutData

2. @il_raffa большое спасибо за ваш ответ. Я пытался это сделать и выдает ошибку «Индекс в позиции 1 недействителен. Индексы массива должны быть целыми положительными числами или логическими значениями «.

3. Вы должны опубликовать код, который генерирует ошибку, чтобы мы могли ее проверить

4. @il_raffa Я обновил код, но не включил цикл for, поскольку получаю эту ошибку и без цикла.