Hoán đổi hai phần tử trong một vectơ / ma trận rất đơn giản trong Octave:
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
Thật không may, tôi vẫn chưa tìm ra cách để làm điều này trong một chức năng ẩn danh. Mặc dù hàm dưới đây đúng về mặt cú pháp, nó chỉ trả về hai phần tử được hoán đổi, không phải toàn bộ x
vectơ:
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
Có cách nào để đạt được hành vi mong muốn bằng cách sử dụng các chức năng ẩn danh theo cách chơi golf không? Một số yếu tố có thể được hoán đổi theo cách này bằng cách sử dụng một chức năng ẩn danh?
Tôi có thể tạo một vectơ lập chỉ mục: f=@(x)x([4,2,3,1,5])
nhưng việc tạo một vectơ như vậy có khả năng cũng sẽ mất rất nhiều byte.