decrease num of for loops
Afficher commentaires plus anciens
Hi
Can you help me to write that 4 for loops with just 1 for loop?
I really need to speed up my program and that is the biggest problem.
for u=0:7,
for v=0:7,
tmp = 0;
for x=0:7,
for y=0:7,
tmp = tmp + vhod(y+1, x+1) * cosd( (2*x + 1)*u*180/16 ) * cosd( (2*y + 1)*v*180/16 );
end
end
izhod(v+1, u+1) = round(0.25 * C(u+1) * C(v+1) * tmp);
end
end
Réponse acceptée
Plus de réponses (1)
José-Luis
le 3 Nov 2012
old_v = 0;
for ii = 1:8*8*8*8
[u v x y] = ind2sub([8 8 8 8],ii);
u = u-1; v = v-1; x = x-1; y = y-1;
if old_v ~= v
tmp = 0;
end
%do your stuff
old_v = v;
end
1 commentaire
Matt Fig
le 3 Nov 2012
Uros comments:
"hm i can't really understand how it works
now i have:
tmp = 0;
old_v = 0;
for ii = 1:8*8*8*8
[u v x y] = ind2sub([8 8 8 8],ii);
u = u-1; v = v-1; x = x-1; y = y-1;
if old_v ~= v
tmp = 0;
end
tmp = tmp + vhod(y+1, x+1) * cosd( (2*x + 1)*u*180/16 ) * cosd( (2*y + 1)*v*180/16 );
old_v = v;
end
but i don't know where and how to put that line:
izhod(v+1, u+1) = round(0.25 * C(u+1) * C(v+1) * tmp);"
Catégories
En savoir plus sur Historical Contests dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!