结构数组:将所有空属性([])设置为NaN

时间:2013-01-15 16:07:26

标签: matlab

我有一个结构数组,并希望将所有空属性设置为NaN:

structArray = 
29x1 struct array with fields:
    value
    id

如果它们为空,我如何将所有struct.value属性设置为NaN?

如果它们为空,则转化[structArray.value]会省略空元素...

1 个答案:

答案 0 :(得分:6)

鉴于此:

x(29).id = [];
x(29).value = [];

您可以像这样设置所有.id字段的值

[x.value] = deal(nan);

要仅设置值的特定子集,请定义要设置的值的掩码,然后在赋值语句中使用它:

maskEmptyId = arrayfun(  @(a)isempty(a.id),  x  );
[x(maskEmptyId).id] = deal(nan);