MATLAB 帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
幻方矩阵
M = magic(n)
M = magic(n) 返回由 1 到 n2 的整数构成并且总行数和总列数相等的 n×n 矩阵。n 的阶数必须是大于或等于 3 的标量才能创建有效的幻方矩阵。
n
1
3
示例
全部折叠
计算三阶幻方矩阵 M。
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
使用 imagesc 观察 9 阶到 24 阶幻方矩阵的图案。这些图案表明 magic 使用三种不同的算法,取决于 mod(n,4) 的值是 0、2 还是奇数。
imagesc
magic
mod(n,4)
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)))) 将其转换为可使用的整数。
floor(real(double(n(1))))
如果您提供的 n 小于 3,则 magic 将返回非幻方矩阵或退化幻方矩阵 1 和 []。
[]
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
char
全部展开
用法说明和限制:
在代码生成时输入参量 n 必须为常量。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
在 R2006a 之前推出
ones | rand
ones
rand
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处