magic

Purpose

Magic square.

Synopsis

M = magic(n)

Description

M = magic(n), for n >= 3, is an n-by-n matrix constructed from the integers 1 through n^2 with equal row and column sums. A magic square, scaled by its magic sum, is doubly stochastic.

Examples

The magic square of order 3 is

M = magic(3)
          
M = 
    8    1    6
    3    5    7
    4    9    2
This is called a magic square because the sum of the elements in each column is the same.

 sum(M) =
     15    15    15
And the sum of the elements in each row, which can be 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(diag(M)) =
     15
The value of the characteristic sum for a magic square of order n is

sum(1:n^2)/n
which, when n = 3, is 15.

Algorithm

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.

The following demonstration makes this apparent:

for n = 3:20
    A = magic(n);
    plot(A,'-')
    r(n) = rank(A);
end
r

See Also

ones, rand

(c) Copyright 1994 by The MathWorks, Inc.