繁体   English   中英

在Matlab中使用表中的变量名

[英]Using variable names from a table in Matlab

我已经在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,因为它非常慢(如我所知),并且该模型将扩展到很多节点和流量。

也许您可以使用结构:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM