taking monthly correlation values
17 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The following example code can be used to calculate the correlation between a data set:
clear all
FieldName = {'loc1','loc2','loc3','loc4'};
data = rand(8760,4);
R = corrcoef(data,'rows','pairwise');
R_Values= [FieldName(nchoosek(1:size(R,1),2)) num2cell(nonzeros(tril(R,-1)))];
Here, 8760 refers to one year worth of data, where a measurement is taken every hour. I'm trying to alter this code to calculate the correlation for every month of the year so that I am left with 12 correlation values for each pair vectors. What would be the best way of doing this?
2 commentaires
Kevin Holst
le 6 Mar 2012
When you say every month of the year, does it have to correspond to the start of calandar months, or can you just take your data and take 12 evenly spaced samples?
Réponse acceptée
Andrei Bobrov
le 6 Mar 2012
dnew = mat2cell(data,eomday(2011, (1:12))*24,size(data,2));
k = cellfun(@(x)num2cell(nonzeros(tril(corrcoef(x),-1))),dnew','un',0);
out = [FieldName(nchoosek(1:numel(FieldName),2)) [k{:}]];
0 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!