У меня есть следующий пример:
DateTime=datestr(datenum('2011-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:...
datenum('2011-12-31 23:00','yyyy-mm-dd HH:MM'),...
'yyyy-mm-dd HH:MM');
Data = [datenum(DateTime) - datenum(2011,0,0),rand(13,length(DateTime(:,1)))'];
Эти данные содержат день года в первом столбце, температуру воды в столбце (2:конец-1) и температуру воздуха в последнем столбце. Я хотел бы рассчитать корреляцию между температурой воздуха (последний столбец) и каждым столбцом температуры. Я могу сделать это следующим образом:
R = arrayfun(@(i)nonzeros(tril(corrcoef(Data(:,i),Data(:,end)),-1)),2:size(Data,2)-1,'un',0);
Затем я пытаюсь создать матрицу значений корреляции для каждого отдельного дня (т.е. каждые 24 строки). Итак, мой вопрос заключается в том, как я могу рассчитать корреляцию между каждым столбцом температуры и температурой воздуха, как указано выше, но для каждого отдельного дня, обозначенного «Данные (:, i)». Результат должен включать 365 строк (дни) и 12 столбцов (температуры).
Кроме того, я могу найти номер строки для каждого дня:
[a,b,b] = unique(floor(Data(:,1)));