Matlab R2017b - 使用 parfor 循环求解方程时出现透明度违规错误

Matlab R2017b - Transparency violation error while using parfor-loop to solve equation

这个程序用"for"是可以的,但是会提示

“Error using syms. Transparency violation error. See Parallel Computing Toolbox documentation about Transparency. ”

当我切换到"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

您只需将您正在使用的 syms 的 non-transparent 版本替换为 transparent-friendly 版本。也就是说,你需要

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