如何使用两个单字段Matlab结构执行并集

时间:2016-07-22 18:41:23

标签: matlab struct matlab-struct

我目前有两个单字段Matlab结构列出图像名称。我想将它们组合成一个没有重复的结构 - 即

a(1).img = 'aa.jpg'
a(2).img = 'bb.jpg'

b(1).img = 'bb.jpg'
b(2).img = 'cc.jpg'

我希望ab有价值:

ab(1) = 'aa.jpg'
ab(2) = 'bb.jpg'
ab(3) = 'cc.jpg'

这样做是否有非强力方式?

1 个答案:

答案 0 :(得分:3)

您可以使用逗号分隔列表后跟unique来连接每个结构的值,以获取唯一值。然后,将其传递给struct函数将创建一个包含值的structs数组。

S = struct('img', unique({a.img, b.img}, 'stable'))

如果您实际上不需要结构体并只想要一个具有唯一值的单元格数组,则可以取消对struct的最终调用。

unique({a.img, b.img}, 'stable')