Actualmente estoy programando una simulación en MATLAB y necesito ayuda con respecto a un problema que he tenido.MATLAB: Fusionar identificadores de función
Estoy trabajando en un problema en el que tengo n
función anónima separada maneja f_i
, cada uno de los cuales se almacena en serie de células functions
y acepta una matriz numérica x_i
1x1 y devuelve una matriz numérica y_i
1x1.
Estoy tratando de combinar cada una de estas funciones en el anonimato maneja en una sola asa función anónima que acepta una sola n
x 1
matriz numérica X
y devuelve un solo n
x 1
gama -numeric Y
. Aquí, X(i) = x_i
, Y(i) = y_i = f_i(x_i)
Como ejemplo vamos n = 2
y f_1 y f_2 haber dos funciones se encarga de que la entrada y salida 1x1
matrices y se almacenan en una serie de células de funciones con nombre
f_1 = @(x_1) x_1^2
f_2 = @(x_2) x_2^3
functions = {f_1,f_2}
que básicamente necesita código que haría poder usar n
, f_1
y f_2
para construir un controlador de función F que ingresa y saca un conjunto numérico 2x1
.
F = @(x) [f_1(x(1,1));f_2(x(2,1))]
Gracias por esto! Necesito que el código sea lo más eficiente posible, así que probablemente use su función y quite los argumentos de longitud/afirmación ... Además, ¿sabría usted si feval es más rápido que usar la evaluación del identificador de función en línea?Es decir, sería y (i) = f {i} (x (i)) más rápido que y (i) = feval (f {i}, x (i))> –