假设我有一个包含结构的单元格数组,每个结构都有3个字段。
当我遇到一个新结构时,我想检查其3个字段中的2个中的值是否与数组中任何结构元素的值匹配。
cell_array = cell(4,1)
cell_array{1}.Field1 = "ABC"
cell_array{1}.Field2 = 46
cell_array{1}.Field3 = 1648
% Would like to check if fields 1 and 2 match
% any struct in cell_array
new_struct.Field1 = "ABC"
new_struct.Field2 = 46
new_struct.field3 = 1765
谢谢。
答案 0 :(得分:3)
您应该使用Matlab的intersect
命令。它在任何种类的两个列表之间找到相似之处,并返回这些相似之处。
然后应该像这样简单:
cell_array = {'ABC', '46', '1648'};
new_array = {'ABC', '46', '1765'};
[C,~,~] = intersect(cell_array,new_array)
disp(C) % C = {'ABC'} {'46'}; 2x1 cell array
% Then simply checking the length of C
if length(C) >= 2
% Perform your task
end