parfor and global variables
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, could you help me please in solving this problem? I need to use parfor and at the same time the function simuconf inside parfor uses global variables. I have read other similar questions but I haven't been able to find a solution. Thanks a lot!
B=7;
coeffconfidsimple=randn(200,2);
cutoffcoeffs=size(coeffconfidsimple,1);
temp=zeros(B,201);
parfor w=1:B
mstr=num2str(w);
A=load(['subdata' mstr '.mat']); %At each iteration I load subdata(w)
E=load(['freq' mstr '.mat']); %and freq(w) and I have to transform them in
%numerical arrays
C= struct2cell(A);
D= struct2cell(E);
global subdata
global freq
subdata= cell2mat(C);
freq=cell2mat(D);
compare=zeros(cutoffcoeffs,1);
for x=1:cutoffcoeffs
[compare(x)]=simuconf(coeffconfidsimple(x,:)'); %This function uses
%subdata and freq
%at each iteration
end
temp(w,:)=[w ((compare)*size(subdata,1))'];
end
0 Kommentare
Akzeptierte Antwort
Doug Hull
am 1 Nov. 2013
Why use globals? They are often just confusing and hard to debug. Just pass them into simuconf.
0 Kommentare
Weitere Antworten (1)
Haithem Bouziri
am 1 Nov. 2013
I think you have to use matlabpool before using parfor , matlabpool(n) must call n workers to execute your parfor. n <= number of core in your processor.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!