Вы имеете в виду попарно?Таким образом, в цикле for функция будет работать как scalar_val = func(A(i),B(i))
?
Если A
и B
имеют одинаковый размер, вы можете применить ARRAYFUN функцию:
newvector = arrayfun(@(x) func(A(x),B(x)), 1:numel(A));
ОБНОВЛЕНИЕ :
В соответствии с вашим комментарием вам нужно запустить все комбинации A и B как scalar_val = func(A(i), B(j))
.Это немного сложнее, и для больших векторов можно быстро заполнить память.
Если ваша функция одна из стандартных, вы можете попробовать использовать BSXFUN :
out = bsxfun(@plus, A, B');
Другой способ - использовать MESHGRID и ARRAYFUN:
[Am, Bm] = meshgrid(A,B);
out = arrayfun(@(x) func(Am(x),Bm(x)), 1:numel(Am));
out = reshape(out, numel(A), numel(B));
Я считаю, что это должно сработать, но у меня нет времени проверять это сейчас.