2012-08-10 296 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 

创建初始结构。

我不完全明白你想用最初的方式填充结构 - 你能澄清一下吗?