运行此代码:
这似乎表明当Matlab调整向量大小时,它会将其调整为恰好需要的空间,没有多余的空间。因此,一次只能调整一个元素。
与Sun的Java ArrayList实现中方法相比,后者分配足够的空间,以便每次重新分配不需要在初始绑定之上进行。显然,由于Matlab不是开源的,所以无法百分之百确定他们的做法,但有没有更好的方法来了解如何调整大小?上面的代码不是估计这个的好方法吗?
n = 5;
x = zeros(n, 1);
for ix=1:10
x(ix) = rand();
disp(getfield(whos('x'), 'bytes'))
end
输出这个:
40
40
40
40
40
48
56
64
72
80
这似乎表明当Matlab调整向量大小时,它会将其调整为恰好需要的空间,没有多余的空间。因此,一次只能调整一个元素。
与Sun的Java ArrayList实现中方法相比,后者分配足够的空间,以便每次重新分配不需要在初始绑定之上进行。显然,由于Matlab不是开源的,所以无法百分之百确定他们的做法,但有没有更好的方法来了解如何调整大小?上面的代码不是估计这个的好方法吗?