Hallo,
ich habe Zweifel, dass die Schleife das macht, was sie soll. Du nimmst nämlich immer nur die Summe über einen Wert und überschreibst T(a,b) mehrfach.
Da deine Matrix 36 Spalten hat, erstaunt es mich, dass du keine Fehlermeldung bekommst, wenn du auf die 89. zugreifst. Vielleicht arbeitest du aber inzwischen einfach mit einer anderen Matrix.
T = zeros(36, 89);
for a = 2:36-1;
for b = 2:89-1;
for i = -(m-1)/2:(m-1)/2;
for j = -(n-1)/2:(n-1)/2;
T(a,b) = T(a,b) + (z(a,b)-z(a-i,b+j))^2;
end
end
T(a,b) = sqrt(T(a,b) / (m*n))
end
end
Die inneren beiden for-Schleifen sollten sich dann vektorisieren lassen.
Grüße,
Harald
↧