Hi, I'm trying to speed up my code using parfor instead of for but it doesn't work. It gives me the error: ??? Error using ==> parallel_function at 598 Error in ==> simuconf at 186 Matrix dimensions must agree. Do you have any suggestion? Thank you very much!
%% global n m B b r m=5; n=4; B=7; b=3; r=10;
%% load coeffconfidsimple cutoffcoeffs=size(coeffconfidsimple,1);
%% matlabpool open 2
tic parfor w=1:B mstr=num2str(w); subsubdata=load(['subdata' mstr '.mat']); subfreq=load(['freq' mstr '.mat']); C= struct2cell(subsubdata); D= struct2cell(subfreq); subdata= cell2mat(C); freq=cell2mat(D);
for x=1:cutoffcoeffs [compare(x)]=simuconf(coeffconfidsimple(x,:)',subdata,freq); %simuconf is a function of three arguments; in addition it uses the global variables stated at the beginning
Another thing to try is putting line 186 of simuconf inside a try...catch. If an error occurs, write all data used on line 186 to a .mat file and abort. Then, you can examine the sizes and contents of the matrices in the mat file to see what went wrong.