當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。