Matlab R2017b - 使用parfor-loop求解方程时的透明度违规错误

时间:2018-03-08 11:07:43

标签: matlab parallel-processing parfor

此程序可以使用“for”,但会提示

  

“使用syms时出错。透明度违规错误。请参阅有关透明度的Parallel Computing Toolbox文档。 “

当我切换到“parfor”时,如果你能告诉我如何修改这个更好的代码,非常感谢你。

clc
clear
close all

% parpool(4)
a = rand(5,4);
parfor i = 1:5
    syms x y
    eq1 = a(i,1)*x+a(i,2)*y==2.3;
    eq2 = a(i,3)*x+a(i,4)*y==5.1;
    x = [];y = [];
    [x,y] = vpasolve([eq1 eq2],[x y]);
    disp(x);
end

1 个答案:

答案 0 :(得分:2)

您只需要使用透明友好版本替换您使用的syms的非透明版本。换句话说,你需要

parfor i = 1:5
    x = sym('x');
    y = sym('y');
    ....
end