Заміна двох елементів у векторі / матриці в Octave дуже проста:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
На жаль, мені ще не вдалося знайти спосіб це зробити в анонімній функції. Хоча функція, наведена нижче, синтаксично правильна, вона повертає лише два елементи, які розміщуються, а не весь x
вектор:
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Чи є спосіб досягти бажаної поведінки, використовуючи анонімні функції в гольфі? Чи можна замінити кілька елементів таким чином за допомогою анонімної функції?
Я міг би створити вектор індексації: f=@(x)x([4,2,3,1,5])
але динамічне створення такого вектора, ймовірно, також займе багато байтів.
Відповідна мета-посада .
—
Стюі Гріффін