Das Vertauschen zweier Elemente in einem Vektor / einer Matrix ist in Octave sehr einfach:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Leider muss ich noch einen Weg finden, um dies in einer anonymen Funktion zu tun. Die folgende Funktion ist zwar syntaktisch korrekt, gibt jedoch nur die beiden Elemente zurück, die vertauscht werden, nicht den gesamten x
Vektor:
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Gibt es eine Möglichkeit, mit anonymen Funktionen auf golferische Weise das gewünschte Verhalten zu erreichen? Können auf diese Weise mehrere Elemente mit einer anonymen Funktion vertauscht werden?
Ich könnte einen Indexierungsvektor erstellen:, f=@(x)x([4,2,3,1,5])
aber das dynamische Erstellen eines solchen Vektors wird wahrscheinlich auch viele Bytes benötigen.