В настоящее время я кодирую симуляцию в MATLAB и нуждаюсь в некоторой помощи в отношении проблемы, которая у меня была.MATLAB: Ручки слияния функций
Я работаю над проблемой, где у меня есть n
отдельный анонимная функция обрабатывает f_i
, каждый из которых хранится в массиве ячеек functions
и принимает 1x1 числовой массив x_i
и возвращает 1x1 числовой массив y_i
.
Я пытаюсь объединить каждый из этих анонимной функции обращается в одну анонимную функцию ручки, которая принимает один n
х 1
числовой массив X
и возвращает единственный n
х 1
-numeric массив Y
. Здесь, X(i) = x_i
, Y(i) = y_i = f_i(x_i)
В качестве примера рассмотрим n = 2
и f_1 и f_2 быть две функции ручки, что входные и выходные 1x1
массивов и хранятся в массиве ячеек с именем функции
f_1 = @(x_1) x_1^2
f_2 = @(x_2) x_2^3
functions = {f_1,f_2}
Я в основном нужен код, который будет уметь использовать n
, f_1
и f_2
для построения функционального дескриптора F, который вводит и выводит числовой массив 2x1
.
F = @(x) [f_1(x(1,1));f_2(x(2,1))]
Спасибо за это! Мне нужен код, чтобы быть максимально эффективным, поэтому я, вероятно, воспользуюсь вашей функцией и удалю аргументы length/assert ... Кроме того, не знаете ли вы, существует ли feval быстрее, чем с помощью оценки дескриптора встроенной функции?То есть y (i) = f {i} (x (i)) быстрее, чем y (i) = feval (f {i}, x (i))> –