Getting Started | ![]() ![]() |
和、転置、対角
魔方陣行列の特別な性質、すなわち、各要素の種々の和に関していることは、多分知っているでしょう。行または列に沿って、または二つの主対角に沿って和を計算すると、同じ数字(結果)を得るでしょう。MATLABを使って確かめて見ましょう。まず、つぎのステートメントを試します。
sum(A)
ans = 34 34 34 34
出力引数を設定しないと、MATLABは変数 ans
を出力引数として自動的に割り当てます。これは、answer
を略したもので、計算結果を保存するものです。これにより、A
の各列の和を要素とする行ベクトルを計算すると、列の各々の要素はすべて同じ、すなわち魔方陣
の和は34です。
行に関する和はどうなりますか?MATLABは、行列の列に関しての処理を優
先します。それで、行の和を得る最も簡単な方法は、行列を転置し、転置された列の和を計算し、その結果を再度転置することです。転置演算は、アポストロフまたはシングルコーティション'
により定義されています。これは、主対角に対して行列を入れ替え、そして、行ベクトルを列ベクトルにします。それで、
A'
ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1
sum(A')'
ans = 34 34 34 34
を出力します。主対角要素の和は、diag
関数を使って、簡単に得られます。まず、対角要素のみを抜出します。
diag(A)
ans = 16 10 7 1
sum(diag(A))
ans = 34
他の対角部、すなわち逆対角
は、数学的にはあまり重要ではありません。それで、MATLABは、それに対応するような関数を準備していません。しかし、グラフィックスの中で使われる関数
fliplr
は、行列の左と右の順番を逆にします。
sum(diag(fliplr(A))) ans = 34
これで、Dürerの彫刻の中の行列は、本当に魔方陣であることが確認されました。そして、この過程には、2,3のMATLABの行列演算をサンプルとして示しています。つぎの節では、他のMATLAB機能を示すためにこの行列を使います。
![]() |
行列の入力 | サブスクリプト | ![]() |