9
Estoy escribiendo una función makeFunction(data)
. Quiero que devuelva una función, no una matriz, vector o escalar. ¿Cómo hago esto?¿Cómo devuelvo una función como valor de salida en MATLAB?
Estoy escribiendo una función makeFunction(data)
. Quiero que devuelva una función, no una matriz, vector o escalar. ¿Cómo hago esto?¿Cómo devuelvo una función como valor de salida en MATLAB?
Utilice los controles de las funciones.
function f = functionReturner(u)
% creates the function x.^u to return as an example
f = @(x) x.^u;
Si guardo esta función, luego invoco functionReturner, el argumento es en sí mismo una función.
f = functionReturner(3);
f(2.5)
ans =
15.625
Puede verificar con bastante facilidad que 15.625 es de hecho 2.5^3.
¿Hay alguna manera de hacer esto sin usar funciones anónimas? – Will
@Will - No sé qué problema está tratando de resolver, o incluso qué versión de MATLAB está utilizando. ¿Hay alguna razón por la cual ahora estás poniendo restricciones a la respuesta? Si tiene algún motivo ulterior, díganos en lugar de hacernos adivinar a todos. Leer la bola de cristal es tan difícil algunos días. –
Si la parte anónima te molesta, un identificador de función normal a una subfunción también funcionará. – Peter