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 x
vektor:
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.