1

我试图在 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 的索引类型来说太大

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

4

1 回答 1

2

你想做什么?magic(3)创建一个3 × 3矩阵,其中所有行和列的总和为相同的数字。rand(x)创建一个均匀分布的随机数的n维矩阵。y = rand([1,2,3])例如,如果你打电话,你会得到一个均匀分布的数字的3维矩阵。的尺寸y将与您的输入相匹配,即size(y)应该返回[1,2,3]并且元素的数量将是prod(y). 因此 的元素数rand(magic(3))应该等于prod(prod(magic(3)))362880。如果你这样做,rand(magic(4))那么元素的数量将超过 20 万亿,这就是你内存不足的原因。

于 2015-09-28T10:08:48.330 回答