Attualmente sto programmando una simulazione in MATLAB e ho bisogno di aiuto in relazione a un problema che ho riscontrato.MATLAB: funzioni di unione Maniglie
Sto lavorando su un problema in cui ho n
funzione anonima separata gestisce f_i
, ognuno dei quali è memorizzato in array di celle functions
e accetta un 1x1 array numerico x_i
e restituisce un array numerico 1x1 y_i
.
Sto cercando di coniugare ciascuno di questi funzione anonima gestisce in un unico manico funzione anonima che accetta un singolo n
x 1
matrice numerica X
e restituisce singola n
x 1
serie -numeric Y
. Qui, X(i) = x_i
, Y(i) = y_i = f_i(x_i)
Come esempio n = 2
e f_1 e F_2 tramite due funzione gestisce che ingresso e uscita 1x1
array e sono memorizzati in una matrice di celle di funzioni con nome
f_1 = @(x_1) x_1^2
f_2 = @(x_2) x_2^3
functions = {f_1,f_2}
Io fondamentalmente bisogno di codice che avrebbe essere in grado di utilizzare n
, f_1
e f_2
per costruire un handle di funzione F che immette e restituisce un array numerico 2x1
.
F = @(x) [f_1(x(1,1));f_2(x(2,1))]
Grazie per questo! Ho bisogno che il codice sia il più efficiente possibile, quindi probabilmente userò la tua funzione e rimuoverò gli argomenti lunghezza/asserzione ... Inoltre, ti capiterà di sapere se feval è più veloce dell'utilizzo della funzione di gestione della funzione inline?Vale a dire, y (i) = f {i} (x (i)) è più veloce di y (i) = feval (f {i}, x (i))> –