我在AMPL中设置了如下问题:
Model
set A;
param B {A,A};
Data
set A := 1 , 2 ;
我没有在我的数据部分定义我的参数B,现在我想在MATLAB中定义参数B的值。我浏览了AMPL网站上提供的示例,但它不起作用。 我想要B如下:
B = rand(2,2)
有人能告诉我如何在MATLAB中做到这一点吗?
答案 0 :(得分:0)
幸运的是我找到了答案
首先应在MATLAB中加载模型部分和数据部分。然后这些命令可以完成所需的任务:
B = ampl.getParameter('B');
B.setValues(rand(2,2));
ampl.display('B')
B :=
1 1 0.849129
1 2 0.678735
2 1 0.933993
2 2 0.75774
或
B.getValues
i1 i2 | val
1.0 1.0 | 0.8491293058687771
1.0 2.0 | 0.6787351548577735
2.0 1.0 | 0.9339932477575505
2.0 2.0 | 0.7577401305783334