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


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