行列の入れ替え
表計算の「形式を選択して貼り付け」という機能に「行列を入れ替える」があります。行列の縦と横を変換する機能なのですが、rpnで計算するときも縦横を自由に変換できると便利です。
4 5 6 ------+ 2行3列
|
(行列入れ替え)
1 4 |
2 5 <-----+ 3行2列
3 6
2年間の黒点数の推移
以下は2006年と2007年の1月から12月までの黒点数のデータです。データはdata.txtに格納されているとします。
16 10 4 3 11 12 9 6 2 0 1 10
このデータをxypでグラフにしてみます。"*"が2006年、"+"が2007年のデータです。
>xyp -x,12 -y,30 -s3,10 -k2 -m <tmp
^y 30 *
|
|
|
- * *
|
|
| +
| * * *
- + + * *
| + * + * +
|
| +
| * + + x
|o + + 12
+--------|---------|---------|--+------>
rpnプログラムのtmatは以下の章で説明しますが、グラフを見ると黒点数は30を最大にして減少しているように思えます。頭の中のイメージで"+"を繋いでみると2007年は2006年に比べて確実に減ってきていることが分かります。
rpnの行列の入れ替え
先ほどのdata.txtで、月の黒点数平均を計算してみましょう。例えば、2006年1月と2007年1月の15と16を足します。これを12ヶ月分行うのですが、簡単に計算するために縦軸と横軸を変換します。
data.txtは縦軸が年で横軸が月でした。これを逆にして縦軸を月で横軸を年にしたい場合に、rpnではユーティリティーパッケージのtmatプログラムを使います。以下にtmatを使った例を示します。
15 16
4 10
10 4
30 3
22 11
13 12
12 9
12 6
14 2
10 0
21 1
13 10
1列目が2006年のデータ、2列目が2007年のデータであることを確認してください。それぞれを横方向に足して2で割れば平均が計算できます。
15.5
7
7
16.5
16.5
12.5
10.5
9
8
5
11
11.5
12か月分を一気に計算できましたね。
tmatは縦×横の合計が1000個の数値程度を目安に使用してください。
本講座で使用したプログラムは、ユーティリティーパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。