Trocar dois elementos em um vetor / matriz é muito simples no Octave:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Infelizmente, ainda não encontrei uma maneira de fazer isso dentro de uma função anônima. Embora a função abaixo esteja sintaticamente correta, ela apenas devolve os dois elementos que são trocados, e não o x
vetor inteiro :
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Existe uma maneira de alcançar o comportamento desejado usando funções anônimas de um modo de golfe? Vários elementos podem ser trocados dessa maneira usando uma função anônima?
Eu poderia criar um vetor de indexação:, f=@(x)x([4,2,3,1,5])
mas criar esse vetor dinamicamente provavelmente também levará muitos bytes.