У меня есть два очень длинных 2D-списка, называемых «first_data *» и «second_data», и я бы хотел найти равные элементы и поместить их в список «final_data». У меня есть MWE здесь:размещение общих элементов в 2D-массивах
first_data = [1 2; 3 4]';
second_data = [1 2; 9 4]';
final = [];
for i=1:length(first_data(:, 1))
for j=1:length(second_data(:, 1))
if(first_data(i, 2) == second_data(j, 2))
final = [final first_data(i, 1)];
end
end
end
Это дает мне 2, по желанию. Это работает, но это очень интенсивно вычислительно для очень больших наборов данных. Есть ли более эффективный способ написать вышеприведенный код?
Вы уверены, что пример кода работает? Вы объявляете 'final_data' и указываете его как' final' в блоке 'if'. Пример ввода данных для двух массивов также будет полезен, если решение из моего ответа не будет работать правильно для вас. – harpun
@harpun Я уточнил свой вопрос и добавил небольшой пример, который работает – BillyJean
В массивах есть три общих элемента. Не должен ли быть ответ [1, 2, 4] вместо [2]? – harpun