need repmat help
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I have a 4D array with two for loops that is very slow. I know repmat is a good tool to speed things up but I am not very good at using it yet. Is there a way to use repmat to replace the follow set of for loops:
%th_diff3_1 has the following dimensions (621,1405,12,116)
for a = 1:621
for b = 1:1405
x = sum(th_diff3_1(a,b,:,:));
x = sum(x(1,1,:,:));
percent3_1(a,b) = (x/1390) * 100;
end
end
Please help me understand repmat!
Thanks,
Dan
0 Commenti
Risposta accettata
Fangjun Jiang
il 19 Set 2011
It's not about repmat. I think you can do this:
x=sum(th_diff3_1,4);
x=sum(x,3);
percent3_1=(x/1390) * 100
4 Commenti
Jan
il 19 Set 2011
@Fangjun: Thanks, but I do not _know_ such details. I just try it taking into account that the calculations are performed by a processor. I've learned programming when efficiency was really important: on a ZX81 with 1kB RAM. It was possible to read the complete operating system in two afternoons.
Although Matlab has a higher complexity, the fundamental rules for efficiency did not change: Keep the data compact to avoid unneded operations.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!