単位行列

単位行列、たとえば3行x3列の単位行列を作るときにどうしますか?

   3 3$1 0 0 0
1 0 0
0 1 0
0 0 1

と書くのを読んだことがあります。
これは$(ドルマーク、シェイプ)の左で指定したシェイプに右側の数列が入れられていって、不足分は繰り返されるというルールによります。
すこし実験です。

   2 3$1 0 0 0
1 0 0
0 1 0
   3 3$1
1 1 1
1 1 1
1 1 1
   3 3$0 0 0 1
0 0 0
1 0 0
0 1 0
   i.3 3
0 1 2
3 4 5
6 7 8

最後の例から単位行列を作れないかと試行錯誤していたら、=(イコール)でできました。

   =i.3 3
1 0 0
0 1 0
0 0 1
   =3 3$1 2 3 4 5
1 0 0
0 1 0
0 0 1
   =3 3$1 2 3
1 1 1
   =1 2 3
1 0 0
0 1 0
0 0 1
   3 3$1 2 3
1 2 3
1 2 3
1 2 3
   =1 2 3 3 2 1 3 2 1
1 0 0 0 0 1 0 0 1
0 1 0 0 1 0 0 1 0
0 0 1 1 0 0 1 0 0
   ~.1 2 3 3 2 1 3 2 1
1 2 3

むむ。ことばで説明するのはむずかしいかもしれない。
1 2 3という数列の例を説明します。
1 2 3に単項動詞の=(イコール)を作用させると、数列の要素のリストを縦軸として、数列自体を横軸としたマトリックスが生成されます。マトリックスは縦軸と横軸の値が同じときに1(真)、違うときに0(偽)となり、結果として3 x 3の単位行列になります。
=i.3 3が同様に3 x 3の単位行列になるのは、=(イコール)の右側引数が(0 1 2) (3 4 5) (6 7 8)という3つの要素からなる配列であり、1 2 3という数列の場合と同じになるからです。
ということは、=i.3が正解かな?

   =i.3
1 0 0
0 1 0
0 0 1
   =i.4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
   =i.5
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

これで好きなだけ単位行列を作ることができる。


以上