Вот первая итерация моего кода, которая правильно заполняет матрицу laseridx
записями матрицы Data, которые соответствуют индексам pulsestart
и pulseend
:
Camel = numel(pulsestart)-1;
CCamel = cell(1,Camel);
for ni = 1:Camel
Ccamel{ni} = pulsestart(ni):pulseend(ni);
end
laseridx = [];
laseridx(:,2) = [Ccamel{:}];
laseridx(:,1) = Data(laseridx(:,2),1);
laseridx(:,3) = Data(laseridx(:,2),3);
Здесьэто вторая версия, которая теперь заполняет матрицу snipidx
.Единственная разница теперь вместо pulsestart
и pulseend
, матрица famousdex
имеет два столбца, которые соответствуют началу и концу выборки, которую я хочу проанализировать:
for ni = 1:Camel
Ccamel{ni} = famousdex(ni,1):famousdex(ni,2);
end
snipidx = [];
snipidx(:,2) = [Ccamel{:}];
snipidx(:,1) = Data(snipidx(:,2),1); % line with issue
snipidx(:,3) = Data(snipidx(:,2),3);
Однако, когда я запускаю вторую версию, я получаю следующую ошибку:
Указатель в позиции 1 недействителен.Индексы массива должны быть положительными целыми числами или логическими значениями.
Ошибка в Analyze2 (строка 74) snipidx (:, 1) = Данные (snipidx (:, 2), 1);
Как мне устранить эту ошибку?
Вот ссылка на snipidx(:,2)
.