2014-04-21 74 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剛發佈的答案。

相關問題