У меня две таблицы с разным количеством строк и тремя столбцами. Если для определенной строки значения в первом и втором столбце такие же, как в другой таблице, я хочу выбрать значения из третьего столбца. Ниже приведен пример кода, который работает, но поскольку на самом деле у меня более 2 миллионов строк в обеих таблицах, его выполнение занимает очень много времени. Есть ли способ ускорить код, избавившись от циклов?
MOOSE2=table(['2010/03/30 00:30:00'; '2010/03/22 18:00:00' ; '2010/04/21 18:30:00'; '2010/02/20 02:20:00'; '2010/03/10 02:30:00'],[5 ;8 ;4; 9 ;7],[10; 11 ;12 ;13 ;14]);
Lion2=table(['2010/03/30 00:30:00'; '2010/04/21 18:30:00'; '2010/03/20 22:00:00'; '2010/03/10 02:00:00'],[5;4;6;7],[17;12;11;14]);
[sMOOSE,~]=size(MOOSE2);
[sLion,~]=size(Lion2);
dmoose=[];
dlion=[];
for i=1:sLion
for j=1:sMOOSE
if (MOOSE2.(1)(j,:)==Lion2.(1)(i,:))&(MOOSE2.(2)(j,:)==Lion2.(2)(i,:))
dmoose=[dmoose;MOOSE2.(3)(j,:)];
dlion=[dlion;Lion2.(3)(i,:)];
end
end
end
Что дает мне правильный результат
dlion =
17
12
dmoose =
10
12