当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Matlab AMPL Parameter.setValues用法及代码示例


classmethod Parameter.setValues()

用法

setValues(indices, values)

setValues(indices, stringvalues)

setValues(valuesmatrix)

setValues(values)

setValues(stringvalues)

说明

设置未分配值的参数的多个值的函数。要一次将数据设置到多个实体,请参阅 AMPL.setData

setValues(indices, values) 将指定索引处的参数值设置为 values 中指定的值

setValues(indices, stringvalues) 将指定索引处的符号参数的值设置为 stringvalues 中指定的文字值

setValues(valuesmatrix) 将参数的值设置为矩阵值中指定的值。仅对二维参数有效

setValues(values) 将指定的double值赋给参数,按照与实体中的索引相同的顺序赋给参数

setValues(stringvalues) 将指定的字符串值赋给参数,按照与实体中的索引相同的顺序将它们赋给参数

输入参数

indices

索引数组或元胞数组。每个元组必须是数组中的一行。

values

要设置的数值。每个值必须是数组中的一行..

stringvalues

要设置的文字值。每个值必须是数组中的一行..

valuesmatrix

要设置为二维参数的值矩阵。为了示例, 这\(m \times n\) 矩阵:\(A = \left( \begin{array}{cccc} a_{11} & a_{12} & ... & a_{1n} \\ x_{21} & x_{22} & ... & x_{2n} \\ ... & ... & ... & ... \\ a_{m1} & a_{m2} & ... & a_{mn} \end{array} \right)\) 可以分配给 AMPL 参数:param a{1..m, 1..n};与声明setValues(A)

示例

排序。创建一些参数并分配指定实例索引的特定数据。

ampl.eval('param a{1..5} default 2; param b{1..2, 1..2};');
a = ampl.getParameter('a');
b = ampl.getParameter('b');
indices = [2; 4]; values = [11; 22];
a.setValues(indices, values);
a.getValues

给出:

ans =
    a [*] :=
    1   2
    2  11
    3   2
    4  22
    5   2
    ;

对于多个索引,只需:

indices = [1 1, 2,2];
b.setValues(indices, values);
b.getValues

给出:

ans =
   b :=
   1 1   11
   2 2   22
   ;

二维(从矩阵分配)

ampl.eval('param 2d{1..3, 1..2};');
  values = eye(3,2);
  d = ampl.getParameter('2d');
  d.setValues(values);
  d.getValues

gives::

  ans =
   i1   i2   |  val
   1.0  1.0  |  1.0
   1.0  2.0  |  0.0
   2.0  1.0  |  0.0
   2.0  2.0  |  1.0
   3.0  1.0  |  0.0
   3.0  2.0  |  0.0

Not specifying the indices, it is possible to do operations like:
ampl.eval('param a{i in 1..5} := i; param b{1..5} default 0;');
  a = ampl.getParameter('a');
  b = ampl.getParameter('b');
  values = a.getInstances;
  b.setValues(values);
  b.display

which assign all the values of a to b, as shown by the output::

  ans =
  i1   |  val
  1.0  |  1.0
  2.0  |  2.0
  3.0  |  3.0
  4.0  |  4.0
  5.0  |  5.0

相关用法


注:本文由纯净天空筛选整理自ampl.com大神的英文原创作品 setValues。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。