Menukar dua elemen dalam vektor / matriks sangat sederhana dalam Oktaf:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Sayangnya, saya belum menemukan cara untuk melakukan ini di dalam fungsi anonim. Sementara fungsi di bawah ini secara sintaksis benar, itu hanya mengembalikan dua elemen yang ditukar, bukan seluruh xvektor:
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Apakah ada cara untuk mencapai perilaku yang diinginkan menggunakan fungsi anonim dengan cara golf? Bisakah beberapa elemen ditukar dengan cara ini menggunakan fungsi anonim?
Saya dapat membuat vektor pengindeksan:, f=@(x)x([4,2,3,1,5])tetapi membuat vektor seperti itu secara dinamis kemungkinan akan membutuhkan banyak byte juga.