Zamiana dwóch elementów w wektorze / macierzy jest bardzo prosta w Octave:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Niestety, muszę jeszcze znaleźć sposób na wykonanie tego w anonimowej funkcji. Chociaż poniższa funkcja jest poprawna składniowo, zwraca tylko dwa zamienione elementy, a nie cały x
wektor:
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Czy istnieje sposób na osiągnięcie pożądanego zachowania za pomocą anonimowych funkcji w golfowy sposób? Czy można w ten sposób zamienić kilka elementów za pomocą anonimowej funkcji?
I mogłaby utworzyć wektor indeksowania: f=@(x)x([4,2,3,1,5])
, ale tworząc taki wektor dynamicznie będzie prawdopodobnie zajmie dużo bajtów zbyt.