MATLAB,yalmip决策变量作为横纵坐标调用某已知矩阵的值
例如:
A=[2 2 2;3 3 3;4 4 4];
x=intvar(1,1);
y=intvar(1,1);
z=intvar(1,1);
Constraints=[];
Constraints=[Constraints,x==2];
Constraints=[Constraints,y==3];
Constraints=[Constraints,z==A(x,y)];
求解时会报错,显示“Constraints=[Constraints,z==A(x,y)];”这个约束,没有为类 'sdpvar' 的值定义函数 'subsindex'。
解决这个问题很简单,把A赋值给另一个矩阵型的决策变量
A=[2 2 2;3 3 3;4 4 4];
x=intvar(1,1);
y=intvar(1,1);
z=intvar(1,1);
AAA=sdpvar(3,3);
Constraints=[];
Constraints=[Constraints,x==2];
Constraints=[Constraints,y==3];
Constraints=[Constraints,AAA==A];
Constraints=[Constraints,z==AAA(x,y)];