【发布时间】:2015-09-28 19:02:40
【问题描述】:
我试图在 Octave 中创建随机幻方,并尝试了类似rand(magic(3)) 的方法,它给出了意想不到的无穷无尽的结果,如下所示:
ans(:,:,1,1,2,1,1,1,1) =
0.894903 0.296415 0.143990
0.186976 0.305691 0.505485
0.224823 0.834031 0.285508
0.336706 0.318158 0.076293
在尝试 rand(magic(4)) 和 5、6、7 时...它给出了类似这样的消息
错误:内存不足或尺寸对于 Octave 的索引类型而言太大
这个模糊结果的可能原因是什么?
【问题讨论】:
-
你想做什么? magic(3) 返回一个 3x3 矩阵。函数 rand 期望每个维度的元素数量作为参数,因此您正在创建一个 8x3x4x1x5x9x6x7x2 矩阵。对于 rand(magic(4)) 矩阵将有 prod(magic(4)(:))=20922789888000 个元素,这些元素太大而无法放入内存
-
我看到了丹的回答,他们正在部分澄清问题。虽然
magic(n)返回一个带有数字1:n*n的正方形,但您只是在谈论不重复的数字。这打开了更多的功能。请更新您的问题并明确什么是魔方。
标签: matlab octave magic-square