matlab - 通过 Matlab 中的 'ID' 字段加入具有相同字段名的 2 个结构

标签 matlab join struct merge

在 Matlab 中通过“ID”字段连接具有相同字段名称的 2 个结构

我有两个结构:

s2010.name = 'fred';
s2010.wage = 8;
s2010(2).name = 'alice';
s2010(2).wage = 9;
s2010(3).name = 'frank';
s2010(3).wage = 10;


s2011.name = 'alice';
s2011.wage = 10;
s2011(2).name = 'frank';
s2011(2).wage = 11;
s2011(3).name = 'peter';
s2011(3).wage = 12;

我想通过它们的通用名称加入这两个结构以获得以下内容:

s2years.name = 'alice';
s2years.wage2010 = 9;
s2years.wage2011 = 10;
s2years(2).name = 'frank';
s2years(2).wage2010 = 10;
s2years(2).wage2011 = 11;

请注意,fred 和 peter 没有出现在结构中 我只想获取常用名称。我想将两年的工资保留在结果结构中的不同字段中。

有什么办法吗?是否先将这 2 个集合转换为另一个对象(例如数据集/表)更好?

最佳答案

看来这个问题很吸引人。这是我的版本 -

[name,ind2010,ind2011] = intersect({s2010.name},{s2011.name});
s2years = struct('name', name, ...
    'wage2010', {s2010(ind2010).wage}, ...
    'wage2011', {s2011(ind2011).wage});

关于matlab - 通过 Matlab 中的 'ID' 字段加入具有相同字段名的 2 个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24982870/

相关文章:

java - JAVA 中的逻辑索引

Matlab转置表格向量

matlab - 为什么输入图像的类别最好为 double ?

MySQL JOIN 两张表(联合)

模板类中的 C++ 非模板方法

c++ - 为 C++ 可执行文件提供变量作为 MATLAB 系统命令的输入参数

mysql - 从内连接创建表非常慢

sql - 如何在同一查询但不同列中将 2 个查询合并在一起?

delphi - 动态结构的大小

c++ - BITMAPINFO 结构的 bmiColors 字段