[英]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.