Travailler sur mon Python ces jours-ci, et je veux porter un court code Matlab d'un cours que j'ai fait quelques années en Python, mais pour être honnête, je ne peux pas comprendre si c'est possible de le faire de la même manière, et si c'est le cas, comment le faire.Fonctions imbriquées/fonctions anonymes en Python
L'essentiel ici que je me bats avec en Python est le suivant:
nk = @(x)1
for l=1:3 % calculate basis
nk = @(x)(nk(x).*(x-1));
end
Comment le code fonctionne dans Matlab:
nk = @(x)1
crée une fonction poignée nk(x)
, qui peut être appelé par nk(xi)
où, par exemple xi=[1,2,3,4]
, mais à partir de maintenant, il ne retournera 1 car il ne dépend pas de la variable x
, pour le moment.
Dans la boucle for, nk(x)
est multiplié par (x-1)
pour chaque itération (ici x
est considéré comme une variable « symbolique », ou comment l'appeler, semblable à la façon dont vous définissez une fonction lambda), et à la fin il devrait s'avérer comme nk = (x-1)*(x-1)*(x-1)
.
C'est toujours une fonction que je peux appeler nk(x)
, où x
est un tableau avec toutes les valeurs que je veux qu'il ait.
Même si vous avez donné l'exemple, je ne comprends pas le comportement souhaité de la fonction. Pouvez-vous être un peu plus précis, comme je l'aime beaucoup d'autres ne sauront pas matlab –
Bien sûr. Pour un aperçu général des fonctions anonymes dans Matlab, vous pouvez consulter https://se.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html#f4-70285. Pour le code que j'ai collé, le but est d'obtenir un polynôme d'interpolation comme un handle de fonction afin qu'il puisse être évalué sur différents intervalles sans faire tout le calcul pour chaque ensemble de données. Dire que je veux interpoler certaines données pour lesquelles je connais P (x) = 0.25 * (x-3)^2 + 0.31 * (x-7.21)^3, le code ci-dessus me donne exactement ce P (x) donc j'évalue comme (x, P (x)) (similaire à numpy.polyval). Normalement je ne connais pas ce P (x) a priori. – ritualmagick
Travailler sur votre Python ... Qu'avez-vous essayé jusqu'à présent? Quels sont les problèmes? – chapelo