关于matlab中struct增长的优化

本文通过对比MATLAB中struct的行增长和列增长速度,发现在结构体包含多个field时,列增长速度显著优于行增长。作者提供了一段测试代码展示两者在相同条件下运行时间的巨大差距,提出这种现象可能与MATLAB的内存申请机制有关,但具体原因未深入探究。
摘要由CSDN通过智能技术生成
在平时编写matlab代码进行实验,偶然间发现matlab结构进行行增长或者列增长速度差异较大,选择列增长能够很大程度上提速。
为了进一步验证,就写了一段demo程序测试:

n = 100000;


fprintf('row grow ... \n');
tic;
temp = struct;
for i = 1 : n
    temp(i, 1).Str = 'aaaa';
    temp(i, 1).Count = i;
end
toc;


fprintf('column grow ... \n');
tic;
temp = struct;
for i = 1 : n
    temp(i).Str = 'aaaa'; % temp(1, i).Str = 'aaaa';
    temp(i).Count = i; % temp(1, i).Count = i;
end
toc;

机器配置就是普通台式机,运行结果如下所示,运行时间相差100+倍:
row grow ... 
Elapsed time is 34.328403 seconds.
column grow ... 
Elapsed time is 0.292414 seconds.

在上面的demo代码中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值