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

Den*_*nis 4 matlab

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

structArray = 
29x1 struct array with fields:
    value
    id
Run Code Online (Sandbox Code Playgroud)

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

如果它们是空的,转换将[structArray.value]省略空元素......

Pur*_*uit 6

鉴于这种:

x(29).id = [];
x(29).value = [];
Run Code Online (Sandbox Code Playgroud)

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

[x.value] = deal(nan);
Run Code Online (Sandbox Code Playgroud)

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

maskEmptyId = arrayfun(  @(a)isempty(a.id),  x  );
[x(maskEmptyId).id] = deal(nan);
Run Code Online (Sandbox Code Playgroud)