How do I execute my loop at a relatively short time?

It is taking like forever (over 6 hours) to execute a loop. The size of my variables are;
Z = 2041211 element
Distance = 2021x2021 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.

 Réponse acceptée

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);

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by