# 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.