2 m x n matrislerim var ve belirli bir pencere uzunluğu içindeki bölümler için kanonik korelasyonları hesaplamak istiyorum. Örneğin, benim pencere uzunluğu 100 ise, bir tane matris içine biriken tümü üzerindeMatlab: Bir dizinin parçaları üzerinden döngü yapmak
canoncorr(X(1:100,:),Y(1:100,:))
canoncorr(X(101:200,:),Y(101:200,:))
canoncorr(X(201:300,:),Y(201:300,:))
...
ve böylece için korelasyon katsayıları olmasını istiyorum. Ben sadece korelasyon katsayısı r ile ilgileniyorum.
aşağıdaki çalışıyorum: Ancak
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
benim tek satırda 1, 101, 201 vb değerleri kaydetmez matris çıkan ama aynı zamanda böyle devam ile 1 ve 101 arasındaki satırları doldurur sıfır.
Ben
[A,B,r(i:i+win,:)] = canoncorr(X(i:i+win,:),Y(i:i+win,:));
sonra subscripted atama boyutları uyuşmazlığı deneyin.
Neyi yanlış yapıyorum?