L'échange de deux éléments dans un vecteur / matrice est très simple dans Octave:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Malheureusement, je n'ai pas encore trouvé de moyen de le faire dans une fonction anonyme. Bien que la fonction ci-dessous soit syntaxiquement correcte, elle ne renvoie que les deux éléments qui sont échangés, pas le x
vecteur entier :
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Existe-t-il un moyen d'atteindre le comportement souhaité en utilisant des fonctions anonymes de manière golfique? Plusieurs éléments peuvent-ils être échangés de cette façon à l'aide d'une fonction anonyme?
Je pourrais créer un vecteur d'indexation:, f=@(x)x([4,2,3,1,5])
mais la création dynamique d'un tel vecteur prendra probablement beaucoup d'octets également.