随机魔法矩阵给出意想不到的结果

Random magic matrix giving unexpected results

我试图在 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 时...它给出了类似这样的消息

error: out of memory or dimension too large for Octave's index type

造成这种模糊结果的可能原因是什么?

你想做什么? magic(3) 创建一个 3-by-3 矩阵,其中所有行和列加起来都相同。 rand(x) 创建一个 n 维均匀分布随机数矩阵。例如,如果您调用 y = rand([1,2,3]),您将得到一个 3 维均匀分布数字矩阵。 y 的维度将匹配您的输入,即 size(y) 应该 return [1,2,3] 并且元素数量将是 prod(y)。因此 rand(magic(3)) 的元素数应该等于 prod(prod(magic(3)))362880。如果你为 rand(magic(4)) 执行此操作,那么元素的数量将超过 20 万亿,这就是你 运行 内存不足的原因。