Problem with parallel loops
Info
This question is closed. Reopen it to edit or answer.
Show older comments
Matlab does not let me to perform the following parfor loop as it warns me that valid indices for A is restricted. How can I overcome this? Any suggestions would be appreciated.
A = zeros(4,4);
a = [1 1 1 2 2 3];
b = [2 3 4 3 4 4];
parfor i = 1:6
A(a(i),b(i)) = corr(C(a(i),:),D(b(i),:));
end
C and D can be any matrices.
Answers (2)
If a and b are small
s=zeros(1,6);
Ca=C(a,:).';
Db=D(b,:).';
parfor i = 1:6
s(i) = corr(Ca(:,i).',Db(:,i).');
end
A=sparse(a,b,s,4,4);
If C and D are small,
s=zeros(1,6);
C=C.';
D=D.';
parfor i = 1:6
s(i) = corr(C(:,a(i).'), D(:,b(i)).');
end
A=sparse(a,b,s,4,4);
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!