MATLAB Function Reference | ![]() ![]() |
表示
M=
magic(n)
詳細
M = magic(n)
は、1
から n^2
までの整数を使って、列方向と行方向の和が等しくなる n
行 n
列の行列を作成します。n
は、3 以上のスカラでなければいけません。
注意
魔方陣は、その和によってスケーリングされた"doubly stochastic"です。
例題
M=
magic(3) M = 8 1 6 3 5 7
4
9
2
sum(M)
=
15
15
15
そして、2度の転置を行うことで、各行の要素についても和が等しいことがわかります。
sum(M')'
=
15
15
15
sum(diag(M)) =
15
sum(1:n^2)/n
アルゴリズム
n
に対してn
で、4の倍数でないものに対してn
で、4の倍数のものに対して forn
=
3:20
A
=
magic(n);
plot(A,'-');
r(n)
=
rank(A); end r
制限
n
が 3
より小さい場合、magic
は魔方陣ではない行列、または、 1 や []
を出力します。/p>
参考
![]() | luinc | mat2str | ![]() |