如何将struct数组传递给另一个struct数组?

Mas*_*oud 5 arrays matlab struct

我试图将结构数组传递给另一个没有成功.

s(1).f = (1:3);
s(2).f = (4:6);
s(3).f = (7:9);

q(1).n = 'nameA';
q(2).n = 'nameB';
q(3).n = 'nameC';
q(3).f = [];

q.f = s.f
Run Code Online (Sandbox Code Playgroud)

n不应修改该字段.

我错过了什么吗?

Dan*_*Dan 2

您可以将结构体数组的每个字段直接分配给元胞数组,然后可以使用将deal结构体转换为元胞数组:

s(1).f = (1:3);
s(2).f = (4:6);
s(3).f = (7:9);

q(1).n = 'nameA';
q(2).n = 'nameB';
q(3).n = 'nameC';

c = cell(3,1);
[c{:}] = deal(s.f);
[q.f] = c{:};
Run Code Online (Sandbox Code Playgroud)

这是一篇关于此类事情的好文章

编辑: 或者正如Shai指出的那样,你可以走了

[q.f] = s.f
Run Code Online (Sandbox Code Playgroud)

  • 当你这样做的时候,为什么不直接使用“[qf] = sf”呢? (6认同)