волшебство

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

Синтаксис

M = magic(n)

Описание

пример

M = magic(n) возвращает n-by-n матрица, созданная из целых чисел 1 через n 2 с равными суммами строки и столбца. Порядок n должен быть скаляром, больше, чем или равный 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

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

свернуть все

Матричный порядок, заданный как скалярное целое число, больше, чем или равный 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