2016-03-28 19 views
0

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?

cevap

0

i 1, 101, 201 den, ... yani,

101. satır için kontrol edin ve sıfır olup olmadığını görmek lütfen gider.

matris öğelerini görmek için spy(r) da yapabilirsiniz.