如何在嵌套在单元格中的单元格中创建值

时间:2014-04-21 22:22:37

标签: matlab cell

这似乎是一个非常简单的问题,但我似乎无法解决这个问题。基本上我有很多单元格:Face1,Face2,Scene1,Scene2。每个单元格包含一个值,例如,Face1 = 15,Face2 = 23,Scene1 = 46,Scene2 = 9

现在我想将所有这些单元格组合成一个名为D的单个单元格,类似于D = {Face1,Face2,Scene1,Scene2}。但是,当我这样做时,我得到D = {15,23,46,9}。这不是我想要的。我想保留每个单元格的身份,所以当我调用D {1,1}时我会得到Face1,当我调用Face1时,我会得到15。

有人有建议吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

您是否考虑过使用结构?试试这个:

D.face1 = 15
D.face2 = 23

你也可以这样做:

D.face(1) = 15

如果不能为你做这件事,请告诉我。

答案 1 :(得分:1)

可能不是最好的“解决方案”,但您可以使用eval执行某些操作。

首先,创建变量。

Face1 = 15, Face2 = 23, Scene1 = 46, Scene2 = 9

然后,创建包含变量名称的单元格数组,作为字符串:

D = {'Face1', 'Face2', 'Scene1', 'Scene2'}

您可以像这样查询其值:

>> eval(D{1,1})

Face1 =

    15

答案 2 :(得分:1)

评论太长了:

看起来你正在使用数组,而不是单元格。也就是说,我认为您的代码如下所示:

Face1 = 15
Face2 = 23
Scene1 = 46
Scene2 = 9
D = {Face1 Face2 Scene1 Scene2}

哪个会像你描述的那样行事。现在D{1}会返回15

如果您使用“单元格”,您的代码将如下所示:

Face1 = {15}
Face2 = {23}
Scene1 = {46}
Scene2 = {9}
D = {Face1 Face2 Scene1 Scene2}

这可能不是你想要的,但它是细胞解决方案。现在D{1}返回{15}D{1}{1}返回15

如果要保留复合数据D中的名称,则结构可能是最简单的。请参阅Fletch刚发布的答案。