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


Matlab AMPL AMPL.setData用法及代码示例


classmethod AMPL.setData(dataframe, assignSets)

用法

setData(dataframe)

setData(dataframe, setName)

说明

setData(dataframe) ` 将 DataFrame 中的数据分配给具有相应名称的 AMPL 实体

setData(dataframe, setName) 将 DataFrame 中的数据分配给具有相应名称的 AMPL 实体(以及指定集合的索引列)

输入参数

dataframe A DataFrame ,其名称对应于底层 AMPL 解释器中当前定义的实体。

setName 要将DataFrame 的索引值分配到的集合的名称。请注意,最多可以与参数同时分配一组(对于具有多个索引列的 DataFrame )

示例 1

使用一个索引列和任意列名创建DataFrame,填充它并将值设置为参数

d = DataFrame(1, {'PROD', 'price', 'cost'});
d.addRow('shirts', 10, 5);
d.addRow('skirts', 8,  6);
ampl.eval('set PROD; param price{PROD}; param cost{PROD};')
ampl.setData(d, 'PROD');
% now the AMPL parameters price and cost, as well as the set PROD are assigned the listed values

示例 2

创建一个DataFrame 对象,从 AMPL 实体推断表结构。必须首先列出集合。不要将设置值分配给 AMPL(一次不支持多个设置)。

ampl.eval('set PROD; set COLOUR; param price{PROD, COLOUR};');
ampl.eval('data; set PROD := shirts skirts; set COLOUR := red blue; model;');
PROD = ampl.getSet('PROD');
COLOUR = ampl.getSet('COLOUR');
price = ampl.getParameter('price');
d = DataFrame([PROD, COLOUR, price]);

d.addRow({'shirts', 'red', 5});
d.addRow({'shirts', 'blue',  4.5});
d.addRow({'skirts', 'blue',  5.5});

ampl.setData(d);
% now the AMPL parameter cost will have the assigned value
price.display

会给:

ans =

price :=
shirts blue   4.5
shirts red    5
skirts blue   5.5

相关用法


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