加速matlab中的循环的一种方式

matlab中经常需要使用到循环操作,尤其是图像操作的时候,一般是直接进行循环操作,那样每次计算都会新申请新内存,减慢了速度,如果提前申请好所需要的内存,矢量化后,就可以明显的加速运算过程,具体例子如下:

% 原始的方式,例子1
tic
MAX_CNT = 1000000;
for i=1:MAX_CNT
    x(i) = i^2;
end
toc
%%
% 加速方式1
tic
MAX_CNT2 = 1000000;
X = zeros(1,MAX_CNT2);
for i=1:MAX_CNT2
    x(i)=i^2;
end
toc
%%
% 加速方式2
tic
MAX_CNT3 = 1000000;
i = 1:MAX_CNT;
x = i.^2;
toc
%% 例子2
% 原始的方式
tic
i = 0;
for t = 0:pi/4:2*pi
    i = i+1;
    x1(i) = sin(t);
end
toc
%%
% 加速方式
tic
t1 = 0:pi/4:2*pi;
x2 = sin(t1);
toc
%%

输出如下:不同的处理器可能运算时间不同,但是规律是差不多的

% 例子1的输出
时间已过 0.063602 秒。
时间已过 0.009146 秒。
时间已过 0.005297 秒。

% 例子2的输出
时间已过 0.002826 秒。
时间已过 0.000596 秒。
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值