У меня есть массив измерений mxnx4 и функция с 4-элементным векторным входом.Я хочу применить свою функцию, чтобы дать мне вывод mxnx4, так что функция применяется mxn раз (т.е. 3-е измерение моего массива становится на входе моей функции).Любые идеи о том, как это сделать, будут высоко оценены.Я посмотрел на arrayfun, но, похоже, это не относится к тому, что я хочу сделать.Я также хочу сохранить форматирование моей функции, так как это требует этого форматирования в другом месте моего кода.
Т.е.:
F=@(V)[V(1)+V(2);V(2)+V(3); V(3)+V(4); V(4)+V(1)]
для применения к массиву M измерений 2x3x4 (m = 2; n = 3)
M = zeros(2,3,4);
M(:,:,1) = [1 2 3;4 5 6];
M(:,:,2) = [7 8 9;10 11 12];
M(:,:,3) = [13 14 15; 16 17 18];
M(:,:,4) = [19 20 21; 22 23 24];
для создания массива измерений2x3x4
C(1,1,:) = F([1 7 13 19])
C(1,2,:) = F([2 8 14 20])
и т. Д.
Я вижу, что цикл for будет работать, применяя следующее к матрице mxn
C(m,n,:)=F(M(m,n,:))
Однако мне нужно запустить этотмиллионы раз, поэтому хотелось бы более быстрый подход