How to vectorize this "for" loop, or parallel it.
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
fun = @(x,y) x + x.*y;
N = 1e3;
K = zeros(N);
for i = 1:N
for j = i:N
K(i,j) = fun(i, j);
end
end
0 Commenti
Risposte (2)
Azzi Abdelmalek
il 23 Gen 2014
Modificato: Azzi Abdelmalek
il 23 Gen 2014
fun = @(x,y) x + x.*y;
N=1000
[y,x]=meshgrid(1:N,1:N);
out=triu(fun(x,y))
2 Commenti
Azzi Abdelmalek
il 23 Gen 2014
Modificato: Azzi Abdelmalek
il 23 Gen 2014
N=4000;
tic
fun = @(x,y) x + x.*y;
[y,x]=meshgrid(1:N,1:N);
f=triu(fun(x,y));
toc
tic
K = zeros(N);
for i = 1:N
for j = i:N
K(i,j) = fun(i, j);
end
end
toc
isequal(f,K)
Elapsed time is 0.193062 seconds.
Elapsed time is 2.421795 seconds.
Vedere anche
Categorie
Scopri di più su Parallel Computing Toolbox in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!