我在Matlab方面缺乏经验,一直试图利用containers.map来简化我的代码。经过一些尝试和错误,我已经能够将值输入到我的容器中,但正在努力寻找一种检索它们的好方法。
为了帮助说明我的问题,我在下面放了一个代码的删节版本
Carbon = containers.Map({'AMod','TMod','PRat','SMod','ATS','SS','Density'}, ...
{235.2,22.1,0.3,27,3700,36,1.8},'UniformValues',false);
Carbon('Q')=[15.23 12.10 1.12; 0.15 30.05 2.08; 20.23 0.05 5.87];
AModValue = values(Carbon,{'AMod'})
QValue = values(Carbon,{'Q'})
当我运行这个代码时,我得到的结果如下
AModValue =
1×1 cell array
{[235.2]}
QValue =
1×1 cell array
{3×3 double}
我的理解是,我拥有的所有有用信息都包含在这些1x1阵列中。有没有一种好的方法可以从这些数组中删除这些数据,并将它们放入相应的变量中以供以后使用?
在这个例子中,我希望AModValue
是一个二重,QValue
是一个3x3二重。不幸的是,我在这个问题上找到的任何东西似乎都将这些值留在了一个数组中。
您不必使用values
来获取值:
您可以直接从地图中获取值:
AModValue = Carbon('AMod')
QValue = Carbon('Q')
结果:
AModValue =
235.2000
QValue =
15.2300 12.1000 1.1200
0.1500 30.0500 2.0800
20.2300 0.0500 5.8700