如何使用两个单字段 Matlab 结构执行联合
How can I perform a union with two single-field Matlab structs
我目前有两个列出图像名称的单字段 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'
有没有非暴力的方法可以做到这一点?
您可以使用逗号分隔的列表连接每个结构的值,后跟 unique
以获得唯一值。然后,将其传递给 struct
函数将创建一个包含值的 structs
数组。
S = struct('img', unique({a.img, b.img}, 'stable'))
如果您实际上不需要结构输出,而只需要唯一值的元胞数组,则可以消除对 struct
.
的最终调用
unique({a.img, b.img}, 'stable')
我目前有两个列出图像名称的单字段 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'
有没有非暴力的方法可以做到这一点?
您可以使用逗号分隔的列表连接每个结构的值,后跟 unique
以获得唯一值。然后,将其传递给 struct
函数将创建一个包含值的 structs
数组。
S = struct('img', unique({a.img, b.img}, 'stable'))
如果您实际上不需要结构输出,而只需要唯一值的元胞数组,则可以消除对 struct
.
unique({a.img, b.img}, 'stable')