Я хотел бы определить максимально возможную непрерывную подвыборку большого набора данных. Мой набор данных состоит из примерно 15 000 финансовых временных рядов длиной до 360 периодов. Я импортировал данные в MATLAB в виде числовой матрицы 360 на 15 000.
Эта матрица содержит много NaNs из-за того, что некоторые финансовые данные не доступны за весь период. На иллюстрации входы NaN отображаются синим цветом, а записи, отличные от NaN, отображаются синим цветом. Именно эти светло-голубые записи, отличные от NaN, я хотел бы идеально объединить в оптимальную подвыборку.
Я хотел бы найти максимально возможный непрерывный блок данных, содержащийся в моей матрице, при этом гарантируя, что моя матрица содержит достаточное количество периодов.
На первом этапе я хотел бы отсортировать свою матрицу слева направо в порядке убывания по количеству записей, отличных от NaN, в каждом столбце, то есть я хотел бы отсортировать по вектору, полученному путем ввода sum(~isnan(data),1)
.
На втором этапе я хотел бы найти подматрицу моей матрицы данных, которая по крайней мере 72 записи по первому измерению, и в противном случае максимально возможная, измеряемая общим количеством записей.
Каков наилучший способ реализовать это?