magic

Магический квадрат

Синтаксис

Описание

пример

M = magic(n) возвращает n-by- n матрица, созданная из целых чисел 1 через n2 с равными суммами по строкам и столбцам. The порядка <reservedrangesplaceholder0> должен быть скаляром, большим или равным 3 для порядка действительного магического квадрата.

Примеры

свернуть все

Вычислите магический квадрат третьего порядка M.

M = magic(3)
M = 3×3

     8     1     6
     3     5     7
     4     9     2

Сумма элементов в каждом столбце и сумма элементов в каждой строке одинаковы.

sum(M)
ans = 1×3

    15    15    15

sum(M,2)
ans = 3×1

    15
    15
    15

Визуально исследуйте шаблоны в магических квадратных матрицах с порядками от 9 до 24 с помощью imagesc. Шаблоны показывают, что magic использует три различных алгоритма, в зависимости от того, является ли значение mod(n,4) 0, 2 или нечетный.

for n = 1:16
    subplot(4,4,n)
    ord = n+8;
    m = magic(ord);
    imagesc(m)
    title(num2str(ord))
    axis equal
    axis off
end

Figure contains 16 axes. Axes 1 with title 9 contains an object of type image. Axes 2 with title 10 contains an object of type image. Axes 3 with title 11 contains an object of type image. Axes 4 with title 12 contains an object of type image. Axes 5 with title 13 contains an object of type image. Axes 6 with title 14 contains an object of type image. Axes 7 with title 15 contains an object of type image. Axes 8 with title 16 contains an object of type image. Axes 9 with title 17 contains an object of type image. Axes 10 with title 18 contains an object of type image. Axes 11 with title 19 contains an object of type image. Axes 12 with title 20 contains an object of type image. Axes 13 with title 21 contains an object of type image. Axes 14 with title 22 contains an object of type image. Axes 15 with title 23 contains an object of type image. Axes 16 with title 24 contains an object of type image.

Входные параметры

свернуть все

Матричный порядок, заданный как скалярное целое число, больше или равное 3. Если n является комплексным, а не целым числом или не скаляром, тогда magic преобразует его в полезное целое число с floor(real(double(n(1)))).

Если вы поставляете n меньше 3, затем magic возвращает немагический квадрат или вырожденные магические квадраты 1 и [].

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char

Расширенные возможности

.

См. также

|

Представлено до R2006a