Проверьте, существует ли комбинация значений полей в массиве ячеек MATLAB. - PullRequest
0 голосов
/ 30 сентября 2018

Предположим, у меня есть массив ячеек, содержащий структуры, каждое с 3 полями.

Когда я сталкиваюсь с новой структурой, я хотел бы проверить, соответствуют ли значения в 2 из 3 ее полей значениям любых элементов структуры в массиве.

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 голосов
/ 30 сентября 2018

Вы должны использовать команду 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...