2014-04-21 52 views
0

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

现在我想将所有这些单元格组合到一个名为D的单元格中,像这样D = {面1,Face2,场景1,第二幕:}。但是,当我这样做时,我得到D = {15,23,46,9}。这不是我想要的。我想保留每个单元格的身份,所以当我打电话给D {1,1}时,我会得到Face1,当我打电话给Face1时,我会得到15.

有没有人有建议?

谢谢!

回答

2

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

D.face1 = 15 
D.face2 = 23 

你也可以做这样的:

D.face(1) = 15 

让我知道,如果不为你做它。

+0

完美!这是我正在寻找的。谢谢你,弗莱奇! –

+0

好!我很高兴能够提供帮助。结构非常强大,特别是在构建GUI时。 [Here](http://www.mathworks.com/help/matlab/structures.html)是结构中一些更微妙属性的好链接。 –

1

可能不是最好的“解决方案”,但你可以用eval做点什么。

首先,创建您的变量。

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

然后,创建一个包含变量名的单元阵列,作为字符串:太长

>> eval(D{1,1}) 

Face1 = 

    15 
1

的评论:

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

可以查询自己的价值观像这样

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

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刚发布的答案。

相关问题