我试图在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的索引类型
,内存或维度太大
这种模糊结果的可能原因是什么?
答案 0 :(得分:2)
你想做什么? magic(3)
创建 3 -by- 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万亿,这就是内存不足的原因。