0

我在 Matlab 中编写了一个小模型。该模型在一个需求节点中分析多个供应节点以满足所需的需求量。供应节点在一个向量中指定,其中每个时间步都有可用的供应。

为了满足需求,供应节点随后分析它们是否能够满足需求,并相应地更新从供应节点到需求节点的通量。此分析现在使用由脚本代码定义的固定顺序。在伪代码中:

for timestep=1:end
     if demand(timestep) > supply_1(timestep)
          supply_1_demand(timestep) = supply_1(timestep)
     else
          supply_1_demand(timestep) = demand(timestep)
     end

     if remaining_demand(timestep) > supply_2(timestep)
          supply_2_demand(timestep) = supply_2(timestep)
     else
          supply_2_demand(timestep) = demand(timestep)
     end

     # etcetera, etcetera
end

但是,分析供应节点的顺序必须有所不同。我想从表格中读取此顺序,其中分析顺序由它们在表格中的显示顺序给出。因此,表格可以如下所示

 1   supply_4
 2   supply_1
 3   supply_5
 # etcetera

有没有办法从这样的表中读取变量名?最好不要使用 eval,因为这非常慢(正如我听说的那样),并且模型将扩展到相当多的节点和通量。

4

1 回答 1

1

也许你可以使用结构:

varNames={'supp_1','supp_2','supp_3'};
supply.(varNames{1}) = 3; %%% set a variable by name
display(supply.(varNames{1})) %%% get value by name

ans =
       3
于 2012-04-26T09:37:43.357 回答