如何将Matlab数组复制到结构数组的字段中

时间:2015-12-24 18:30:13

标签: arrays matlab struct

我已经定义了一个结构数组,如下所示:

t3(1:num_elems) = struct('prime_idx',0,'second_idx',0,);

我想将数组nic复制到t3的prime_idx字段,以便t3(x).prime_idx == nic(x)为所有x。我试过了:

 t3.prime_idx = nic;

和      [t3.prime_idx] = nic; 和      t3.prime_idx = [nic]; 和      [t3.prime_idx] = [nic];

以及在两个数组变量(:)t3之后添加nic的各种排列。

如何将nic的每个元素复制到t3对应元素的相应prime_idx字段?

1 个答案:

答案 0 :(得分:1)

表达式s.f,其中s是struct array ,导致以逗号分隔的列表。因此,写s.f = x;无效,[s.f] = x;可以工作,但需要x返回与s有项目一样多的输出。你需要的是提供那些输出,例如像这样:

cNic = num2cell(nic);
[t3.prime_idx] = cNic{:};