MATLAB: How to execute the loop at a relatively short time

loops

It is taking like forever (over 6 hours) to execute a loop. The size of my variables are;
Z = 2041211 element
Distance = 2021×2021 double
for duidx = 1:Z
Summation_Residual_Squared(duidx) = sum(Residual_Squared(Distance_Unique(duidx)==Distance));
Semivariance(duidx) = Summation_Residual_Squared(duidx)/(2*sum(Distance(:)== Distance_Unique(duidx)));
end
Am I working with large files such that the execution time I'm obtaining is normal or is there something i'm missing.
Thanks.
Darl.

Best Answer

Distance -> D
Distance_Unique -> DU
Residual_Squared -> RS
Summation_Residual_Squared -> SRS
Semivariance -> S
DD = D(:);
[lo,ii] = ismember(DD,DU);
SRS = accumarray(ii(lo),RS(lo));
S = SRS./accumarray(ii(lo),1);
Related Question