我目前有两个单字段的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'
有没有一种非蛮力的方法来做这件事?
我目前有两个单字段的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'
S = struct('img', unique({a.img, b.img}, 'stable'))
如果你只需要一个唯一值的单元数组,而不是实际需要一个结构体,那么可以省略最后调用 struct
的步骤。
unique({a.img, b.img}, 'stable')
unique({a(:).img, b(:).img})
- user1245262(:)
是不必要的。 - Sueverunique
会对值进行排序。'stable'
可以确保它们保持最初出现的顺序。 - Suever