受以下答案中的比较速度测试启发:
弗里德里希
,我扩展了他的代码,使其能够在多个不同版本上执行更健壮的测试。下面的计时标准化为
10 * 1 (M, N)
,以及倍频程和ML6.5具有较少的元素,以防止出现最大阵列大小错误。有关所有详细信息,请参阅附件。
你可以让这个功能更花哨,但我不想花时间在这上面。我可能会在某个点更新这个函数)
Matlab 6.5:
一个= 1 (M, N) * 10;= 0.0410s(标准化时间= 0.99)
A=零(M,N)+10;=0.0400s(标准化时间=1.01)
A=repmat(10[M,N])=0.0460s(标准化时间=1.14)
a=10;A=A(一(M,N));=0.2770s(标准化时间=6.84)
R2011a:
A=repmat(10,[M,N]) = 1.8918s(标准化时间= 0.98)
一个= 1 (M, N) * 10;= 1.8975s(归一化时间= 0.99)
A=uninit(M,N);A(:)=10;=1.9129s(标准化时间=1.00)
A=零(M,N)+10;=2.0259s(标准化时间=1.05)
A=mxFastZeros(0,M,N)+10;=3.7976s(标准化时间=1.94)
a=10;a=a(一(M,N));=8.4049s(标准化时间=4.36)
A=randi([10,10],M,N);=12.0829s(标准化时间=6.20)
R2015a:
A=repmat(10,[M,N]) = 0.6856s(标准化时间= 0.39)
一个= repelem (10, M, N);= 0.7803s(标准化时间= 0.44)
A=mxFastZeros(0,M,N)+10;=1.7123s(标准化时间=0.97)
一个= uninit (M, N);(:) = 10;= 1.7477s(归一化时间= 0.99)
一个= 1 (M, N) * 10;= 1.7598s(归一化时间= 0.99)
A=0(M,N)+10;=1.8429s(标准化时间=1.04)
a=10;A=A(一(M,N));=7.6893s(标准化时间=4.35)
randi = ((10,10), M, N);= 7.7680s(归一化时间= 4.40)
R2020a:
A=mxFastZeros(0,M,N)+10;=0.6672s(标准化时间=0.31)
一个= 0 (M, N) + 10;= 0.6879s(标准化时间= 0.31)
A=repmat(10[M,N])=0.7013s(标准化时间=0.32)
一个= repelem (10, M, N);= 0.7761s(标准化时间= 0.36)
A=未校准(M,N);A(:)=10;=1.7886s(标准化时间=0.83)
A=一(M,N)*10;=2.1304s(标准化时间=0.98)
A=randi([10,10],M,N);=6.9900s(标准化时间=3.21)
10 =, = ((M, N));= 7.2315s(标准化时间= 3.32)
倍频程5.2.0
A=repmat(10[M,N])=0.0264s(标准化时间=0.43)
A=重复(10,M,N);=0.0366s(标准化时间=0.59)
A=零(M,N)+10;=0.0583s(标准化时间=0.94)
A=uninit(M,N);A(:)=10;=0.0628s(标准化时间=1.00)
A=一(M,N)*10;=0.0637秒(标准化时间=1.03)
10 =, = ((M, N));= 0.0945s(归一化时间= 1.53)
randi = ((10,10), M, N);= 0.4947s(标准化时间= 8.00)