2017-10-10 2 views
0

Cela devrait être assez facile, mais je suis nouveau à matlab alors pardonnez-moi. Je crée une fonction qui prend comme fonction une fonction y = "une fonction de x". y pourrait être un handle de fonction (disons y = @ (x) x^2), ou je peux y être une expression symbolique (comme y = x^2) ... Ce qui est plus facile.Matlab: comment passer une liste à travers une fonction, retourner la liste des réponses

Je souhaite exécuter la liste x à l'aide de la fonction y et renvoyer une liste des valeurs y calculées. donc le résultat devrait être [1 4 9 16 25]. Comment ferais-je cela dans une fonction?

Il devrait ressembler à ceci:

function myfunc = func(f) 
    xlist = [1 2 3 4 5]; %IMPORTANT: in this case, xlist's class is "sym" 
    ylist = ... %statement of something like "f(xlist)" goes here* 

Répondre

0

Vous pouvez faire y comme une poignée de fonctions et d'appeler dans le fichier lui-même m .....

y = @(x) x.^2 ; 
x = [1 2 3 4 5] ; 
y = y(x) 

Si vous voulez pour en faire une fonction ... soit définir et à l'intérieur de la fonction ou en faire une entrée comme indiqué ci-dessous:

function out = myfun(x,y) 

if ~isa(y,'function_handle') 
    error('input t should be a function handle') 
end 
out = y(x) ; 
end 


y = @(x) x.^2 ; 
x = [1 2 3 4 5] ; 
out = myfun(x,y)