Эта матрица ниже представляет собой матрицу 25x7. В основном то, что я делаю, это дата начала и дата окончания и добавление 1 к дате начала и вычитание 1 с даты окончания. Проблема в том, что я добираюсь до последней (25-й) итерации, где мой индекс превышает размеры матрицы. Здесь дата начала 20081210, и мне нужно получить 20081211. Как я могу это сделать без изменения методологии моего кода? Спасибо.Преодоление матрицы Matlab 'превосходит размеры матрицы' без изменения точки кода
for i = 1:length(matrix)
plus1=matrix(i+1,1);
minus1=matrix(i,2)-1;
[~,startIdx]=ismember(plus1,date); % index days in between entry date and exit date
[~,cutoffIdx]=ismember(minus1,date); % index days in between entry date and exit date
j=date(startIdx:cutoffIdx);
end
Я не понимаю, как ваш данные структурированы или точка вашего кода. Просьба представить [минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve) вместе с желаемым результатом. – excaza
Я не понимаю, что такое 'matrix' и какая' дата'. – rayryeng
Первый столбец матрицы - это деловые даты. 20080825 - 20081210. Матрица содержит значение спредов опционов. Я пытаюсь отслеживать значение в каждый следующий день. Я хочу, чтобы цикл for завершился в 20081211, но я не могу сделать это без превышения размеров. – kits