我可以通过两种不同的方式定义我的数据结构:
第1名:
for i = 1:3, matrix.a{1,i} = rand(1,2000000); end
for i = 1:3, matrix.a{2,i} = rand(1,2000000); end
for i = 1:3, matrix.g{2,i} = rand(1); end
for i = 1:3, matrix.g{1,i} = rand(1); end
2号:
for i = 1:3, matrix2(1,i).a = rand(1,2000000); end
for i = 1:3, matrix2(2,i).a = rand(1,2000000); end
for i = 1:3, matrix2(1,i).g = rand(1); end
for i = 1:3, matrix2(2,i).g = rand(1); end
其中一个是更有效的方法吗?
谢谢!
答案 0 :(得分:2)
检查whos matrix matrix2
,它会显示两种替代方案的内存使用情况。
不花太多时间考虑它应该非常相似 - 它肯定会与随机数所需的内存进行比较。
答案 1 :(得分:1)
没有大的差别,都包含6个矩阵和2 000 000个元素,这是重要的部分并且没有变化。您可以将代码(tic
toc
)和内存(whos
)的执行时间与此单一代码行x=rand(6,2000001)
进行比较,这显然会生成并存储所需的随机数量以最有效的方式。没有显着差异。