Octaveでは、ベクトル/マトリックス内の2つの要素を交換するのは非常に簡単です。
x='abcde';
x([4,1])=x([1,4])
x =
dbcae
残念ながら、匿名関数内でこれを行う方法をまだ見つけていません。以下の関数は構文的には正しいですが、x
ベクトル全体ではなく、スワップされる2つの要素のみを返します。
f=@(x)(x([4,1])=x([1,4]))
f(x)
ans =
ad
匿名関数を使用してゴルフのように望ましい動作を達成する方法はありますか?無名関数を使用して、この方法で複数の要素を交換できますか?
私は可能性がインデックスベクトルを作成しますf=@(x)x([4,2,3,1,5])
が、動的なベクトルを作成する可能性があまりにもバイトの多くがかかります。
関連するメタ投稿。
—
スティーヴィーグリフィン