2012-08-10 291 views
0

我正在考慮創建一個像QQQW(1,12).x1 ... QQQW(1,12).x40這樣的結構,所以我有12個字段用於W和40個對:field-內部值(單元格,字符串,整數)。我想預先分配這個結構。在這種情況下,我已經擁有一個像這樣的現有結構,但具有數據,並且根據條件,我要麼修改這些數據並保存到新結構中,要麼進一步使用空的預分配結構。preallocate結構matlab

所以我必須得到一個結構預先分配的尺寸與我的數據結構完全一樣,但是sone必須是空的。如何在不輸入所有這些12次50個名字的情況下執行此操作?

就像s = struct(obj),它不應該包含obj的內容,而應該是空的。

幫助,如果您有任何想法

+0

而不是直接回答這個問題,我建議你看看'map'數據結構,而不是http://www.mathworks.co.uk/help/techdoc/matlab_prog/brqqo5e-1.html,而不是實現你自己的關鍵價值體系 – learnvst 2012-08-10 09:18:40

+0

我可以問你一個更直接的問題嗎?因爲我無法應付你的建議 – beginh 2012-08-10 09:33:37

回答

0

事實上,它似乎請不來是最好的有關如何存儲你的數據的選擇 - 所產生的結構不會是世界上最容易的事情操縱。然而,如果你的客戶/客戶/任何人希望你返回與你給定的數據結構相同的數據結構,那麼這是一個合法的用例。

所以,你可以這樣做

for ii = 1:40    
    Q.Q.Q.W(12).(['x' num2str(ii)]) = []; 
end 

創建初始結構。

我不完全明白你想用最初的方式填充結構 - 你能澄清一下嗎?