Как эффективно применять бинарную функцию для выбора столбцов из 2 таблиц и только для строк на основе некоторых условий? - PullRequest
0 голосов
/ 22 апреля 2020

Какой самый эффективный способ применить двоичную функцию к некоторым столбцам двух таблиц?

Например, пусть

var1=[1;2;3;4];
var2=[1;1;1;3];
A=table(var1,var2);

var1=[2;3;4;5];
var2=[1;1;1;3];
B=table(var1,var2);

Если я хочу новую таблицу C, где

C=table(func(A.var1,B.var1),var2);

с, например, func=@mean,

Какой самый эффективный способ достижения результата? [bsxfun(@func,A(:,1),B(:,1),var2)] эффективен?

В моем приложении мне нужно сначала удалить строки, где var2 равно 0, а A.var2 и B.var2 не идентичны. Я использую синтаксис как A=A(A.var2~=0,:) и [~,ia,ic]=intersect(A.var2,B.var2); A=A(ia,:). И func будет комбинацией двух вышеупомянутых шагов и [mean(A(:,1),B(:,1)),var2)] перед использованием bsxfun. Тем не менее, в этот момент я эффективно зацикливался на столбцах каждой таблицы 3 раза. Есть ли более эффективный способ с помощью встроенных функций применять двоичную функцию для выбора столбцов из 2 таблиц на основе некоторых условий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...