2026a
# magic
幻方矩阵
函数库: TyMath
# 语法
M = magic(n)
# 说明
M = magic(n) 返回由 1 到 n^2 的整数构成并且总行数和总列数相等的 n×n 矩阵。n的阶数必须是大于或等于 3 的标量才能创建有效的幻方矩阵。示例
# 示例
三阶幻方矩阵
计算三阶幻方矩阵 M。
using TyMath
M = magic(3)
3×3 Matrix{Int64}:
8 1 6
3 5 7
4 9 2
每列中元素的总和等于每行中元素的总和。
sum(M,dims = 1)
1×3 Matrix{Int64}:
15 15 15
sum(M,dims = 2)
3×1 Matrix{Int64}:
15
15
15
幻方矩阵可视化
使用 imagesc 观察 9 阶到 24 阶幻方矩阵的图案。这些图案表明 magic 使用三种不同的算法,取决于 mod(n,4) 的值是 0、2 还是奇数。
using TyMath
using TyPlot
using TyImages
for n = 1:16
ax = subplot(4,4,n)
ord = n+8
m = magic(ord)
imagesc(m)
title("$ord")
axis("equal")
axis("off")
end
tightlayout()
# 输入参数
n-矩阵的阶次整数标量
矩阵的阶次,指定为大于或等于 3 的整数标量。如果 n 是复数,不是整数,也不是标量,则 magic 会使用 floor(real(n[1]))) 将其转换为可使用的整数。
如果您提供的 n 小于 3,则 magic 将返回非幻方矩阵或退化幻方矩阵 1 和 [ ]。
数据类型: Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Bool | Char