Intercambiar dos elementos en un vector / matriz es muy simple en Octave:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Desafortunadamente, todavía tengo que encontrar una manera de hacer esto dentro de una función anónima. Si bien la siguiente función es sintácticamente correcta, solo devuelve los dos elementos que se intercambian, no todo el x
vector:
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
¿Hay alguna manera de lograr el comportamiento deseado utilizando funciones anónimas de una manera golfística? ¿Se pueden intercambiar varios elementos de esta manera usando una función anónima?
Yo podría crear un vector de indexación: f=@(x)x([4,2,3,1,5])
, pero la creación de un vector tal forma dinámica es probable que tomar una gran cantidad de bytes también.