Поменять местами два элемента в векторе / матрице в 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])
но динамическое создание такого вектора, вероятно, также займет много байтов.
Соответствующий мета пост .
—
Стьюи Гриффин