Чтобы применить функцию к каждому элементу в массиве или матрице, используйте arrayfun
.
m = [1:3; 4:6];
arrayfun(@(x) x + 1, m)
Чтобы использовать arrayfun, вам нужно изменить сигнатуру вашей функции F
, чтобы она принимала элемент в вашей матрице в (i, j), а не сами индикаторы.
Кроме того, чисто векторизованное решение часто быстрее, чем arrayfun
. Например, сравнить
tic; for(i = 1:1000); mean(m(:)); end; toc
tic; for(i = 1:1000); arrayfun(@mean, m); end; toc