MATLAB Function Reference | Search  Help Desk |
magic | Examples See Also |
M=
magic(n)
M = magic(n)
returns an n
-by-n
matrix constructed from the integers 1
through n^2
with equal row and column sums. The order n must be a scalar greater than or equal to 3
.
A magic square, scaled by its magic sum, is doubly stochastic.
The magic square of order 3 is
MThis is called a magic square because the sum of the elements in each column is the same.=
magic(3) M = 8 1 6 3 5 7
4
9
2
And the sum of the elements in each row, obtained by transposing twice, is the same.sum(M)
=
15
15
15
This is also a special magic square because the diagonal elements have the same sum.sum(M')'
=
15
15
15
sum(diag(M)) =
15
The value of the characteristic sum for a magic square of order n
is
sum(1:n^2)/nwhich, when
n = 3
, is 15
.
There are three different algorithms: one for odd n
, one for even n
not divisible by four, and one for even n
divisible by four.
To make this apparent, type:
forIf you supplyn
=
3:20
A
=
magic(n);
plot(A,'-')
r(n)
=
rank(A); end r
n
less than 3
, magic
returns either a nonmagic square, or else the degenerate magic squares 1
and []
.
ones
Create an array of all ones
rand
Uniformly distributed random numbers and arrays