结构数组或单元数组

时间:2013-11-14 10:23:56

标签: arrays matlab data-structures

我可以通过两种不同的方式定义我的数据结构:

第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

其中一个是更有效的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

检查whos matrix matrix2,它会显示两种替代方案的内存使用情况。

不花太多时间考虑它应该非常相似 - 它肯定会与随机数所需的内存进行比较。

答案 1 :(得分:1)

没有大的差别,都包含6个矩阵和2 000 000个元素,这是重要的部分并且没有变化。您可以将代码(tic toc)和内存(whos)的执行时间与此单一代码行x=rand(6,2000001)进行比较,这显然会生成并存储所需的随机数量以最有效的方式。没有显着差异。