Matrix Matlab计算时间

Matrix Matlab计算时间,matrix,time,tableofcontents,Matrix,Time,Tableofcontents,我对Matlab有一种奇怪的体验。我想计算矩阵乘法所需的时间,如下所示: 抽搐; 对于i=1:10^-3:10^4 [1 1 1]*[1 1 1;1 1 1;1 1 1]; 结束 toc 及 抽搐; 对于i=1:10^-3:10^4 [1 1 1;1 1 1;1 1 1]*[1 1 1;1 1 1;1 1 1]; 结束 toc 现在第一个的结果是 运行时间为7.707570秒 因此,我预计第二个需要23秒(因为第一个需要n^2=9次乘法,而第二个需要n^3=27次乘法),但结果是: 运行时间为1

我对Matlab有一种奇怪的体验。我想计算矩阵乘法所需的时间,如下所示:

抽搐; 对于i=1:10^-3:10^4 [1 1 1]*[1 1 1;1 1 1;1 1 1]; 结束 toc

抽搐; 对于i=1:10^-3:10^4 [1 1 1;1 1 1;1 1 1]*[1 1 1;1 1 1;1 1 1]; 结束 toc

现在第一个的结果是

运行时间为7.707570秒

因此,我预计第二个需要23秒(因为第一个需要n^2=9次乘法,而第二个需要n^3=27次乘法),但结果是:

运行时间为10.558797秒

有人能给我解释一下这里发生了什么事吗


谢谢

timeit功能可能会重复类似的结果,所以我认为这与tic toc的准确性无关,至少这消除了一个选项:)对不起,没有明确的答案。我只能建议对重复的相同计算进行一些缓存或优化。您可以尝试创建随机矩阵,看看是否得到类似的结果。