2016-08-21 5 views
0

У меня есть две матрицы, которые содержат разные даты (в Matlab время). Данные являются ежедневными и являются последовательными по времени для обеих матриц. Первая матрица варьируется от 1948 до 2015 года. Вторая матрица варьируется от 2004-2012 годов. Как найти индексы (и связанные даты) матрицы 1 из матрицы 2 (т. Е. Взять только 2004-2012 годы из матрицы 1948-2015 годов)? Я в конечном счете, должны сделать это, чтобы захватить данные из матрицы 1, что соответствует периоду времени матрицы 2 (то есть, (1948-2012 укороченной к периоду времени 2004-2012)Как совместить даты двух матриц и найти последующие данные в Matlab?

Пример: данные.

Matrix 1: [711493 
711494 
711495 
711496 
711497 
...] 

Matrix 2: [732113 
732114 
732115 
732116 
732117 
...] 

Matrix 2 data: [2.02728476987546 
1.19049470851012 
1.74428201430610 
1.91262806946072 
1.32636277791079 
...] 

ответ

1

Вы можете захватить индексы матрицы 1, которые попадают в диапазон дат матрицы 2, сначала найдя минимальную и максимальную даты в матрице 2, затем сгенерируйте логический массив из матрицы 1 и преобразуйте его в индексы с помощью функции find.

dmin = min(Matrix2(:)); 
dmax = max(Matrix2(:)); 
idx = find(Matrix1 >= dmin & Matrix1 <= dmax);