You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

空数组相乘生成零矩阵是否更快?版本差异测试结果相悖求解析

空数组相乘构造零矩阵的性能变化问题

我在MATLAB Answers上看到一篇2013年的帖子,作者通过实例说明:用两个空数组相乘得到的零矩阵,比直接调用zeros()构造零矩阵的速度更快。

但我在自己的环境中测试得到了相反的结果——直接生成零矩阵的速度明显更快。我的测试环境为:I7-6700处理器、8G内存、Win10系统、MATLAB 2020a版本。

我疑惑的是,为什么2013年时空数组相乘的方式会更快?该帖子的官方解答提到“doesn't allocate memory (R2012a, 64bit, Win7)”,这是不是意味着当时MATLAB生成的是伪零矩阵(不实际分配内存的虚拟矩阵),因此速度更快?

测试代码与结果

直接调用zeros()的测试

f=@() zeros(1000)
timeit(f)
% 输出:
% f =
%   包含以下值的 function_handle:
%     @()zeros(1000)
% ans =1.80924e-05

空数组相乘的测试

g=@() zeros(1000,0)*zeros(0,1000)
timeit(g)
% 输出:
% g =
%   包含以下值的 function_handle:
%     @()zeros(1000,0)*zeros(0,1000)
% ans =0.0021746854

内容的提问来源于stack exchange,提问作者bokabokaboka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:51:03