How can I change this code to be able to use parfor?

2 visualizzazioni (ultimi 30 giorni)
MRC
MRC il 31 Ott 2013
Commentato: Matt J il 1 Nov 2013
A=randn(5,1);
parfor i=1:4
B=randn(3,1);
for t=1:size(B,1)
for w=1:size(A,1)
if B(t)==A(w)
A(w)=A(w)+1;
end
end
end
end

Risposte (1)

Matt J
Matt J il 31 Ott 2013
Modificato: Matt J il 31 Ott 2013
A=randn(5,1);
C=cell(1,4);
parfor i=1:4
B=randn(1,3);
C{i}=sum(bsxfun(@eq,A,B),2);
end
A=A+sum([C{:}],2);
  1 Commento
Matt J
Matt J il 1 Nov 2013
Better:
A=randn(5,1);
C=0;
parfor i=1:4
B=randn(1,3);
C=C+sum(bsxfun(@eq,A,B),2);
end
A=A+C;

Accedi per commentare.

Categorie

Scopri di più su Parallel for-Loops (parfor) 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!

Translated by