检查字段值的组合是否在MATLAB结构的单元格数组中存在

时间:2018-09-30 08:00:41

标签: matlab

假设我有一个包含结构的单元格数组,每个结构都有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

谢谢。

1 个答案:

答案 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