Ich habe 2 m x n Matrizen und möchte kanonische Korrelationen für Segmente innerhalb einer gegebenen Fensterlänge berechnen. Wenn zum Beispiel meine Fensterlänge 100 ist, würde ich gerne die Korrelationskoeffizienten fürMatlab: Schleifen über Segmente eines Arrays
canoncorr(X(1:100,:),Y(1:100,:))
canoncorr(X(101:200,:),Y(101:200,:))
canoncorr(X(201:300,:),Y(201:300,:))
...
usw. alle in einer Matrix angesammelt haben. Ich interessiere mich nur für den Korrelationskoeffizienten r.
Ich versuche, die folgenden:
win=100;
r=[];
for i=1:win:size(X,1)-win-2
[A,B,r(i,:)] = canoncorr(X(i:i+win,:),Y(i:i+win,:));
end
jedoch meine, Matrix führt nicht nur die Werte von Zeile 1, 101, 201 usw. speichern, sondern füllt auch die Zeilen zwischen 1 und 101 und so weiter mit Nullen.
Wenn ich
[A,B,r(i:i+win,:)] = canoncorr(X(i:i+win,:),Y(i:i+win,:));
dann indizierte Zuweisung Dimensionen Mismatch versuchen.
Was mache ich falsch?