MATLAB代码优化
来源:互联网 发布:mysql 子查询不走索引 编辑:程序博客网 时间:2024/05/17 00:50
代码优化
两种方法:预分配数组、向量化循环
预分配数组:在进入一个计算数组元素的for循环之前,初始化数组为所希望输出的大小,调用函数zeros进行预分配
例如:function y =sinfun2(M)
x=0:M-1;
y=zeros(1,numel(x)); %预分配
for k = 1:numel(x)
y(k)=sin(x(k)/(100*pi));
end
注意:如果没有使用预分配数组,则输出变量y每经过一个循环后都会增长一个元素大小,MATLAB将重新分配新的内存空间,并且在每次数组生长时都要复制前一数组元素,
这种频繁的内存分配和复制的开销非常大
函数tic和toc:测量函数执行的时间,例如:>>tic;sinfun1(100);toc
函数timeit:用于得到函数调用的可靠的、可重复的时间测量,例如:s=timeit(f)
例如:>>M = 100;
>>f=@() sinfun1(M);
>>timeit(f)
函数timeit与我们希望计时的函数的参数无关
向量化循环:使用矩阵/向量运算符、索引技术和现有的MATLAB或工具箱函数来完全消除循环的技术
注意:我们首先应该编写正确且容易理解的代码,然后如果代码运行得不够快,则使用MATLAB的Profiler确定可能的故障点
0 0
- [读书笔记]Matlab代码优化
- Matlab代码优化
- [matlab]代码优化
- MATLAB代码优化
- Matlab代码的分析、优化和加速
- Matlab代码的耗时分析、优化…
- Matlab代码的耗时分析、优化、加速
- MatLab 代码优化 Fast your MatLab code. (1) Introduction
- matlab 优化内存使用以及优化代码运行速度
- Matlab遗传算法优化问题求解的示例代码
- MATLAB图像处理-流控制和代码优化
- MatLab 代码优化 Fast your MatLab code. (2) 寻找性能瓶颈
- MatLab 代码优化 Fast your MatLab code. (3) 预先给数组分配内存
- matlab代码
- matlab里实现最大值最小值最优化代码,实现【0,1】归一化代码
- matlab优化工具箱
- Matlab优化函数
- matlab优化应用
- 实现strcat函数
- 试试Markdown
- kafka常用命令
- 关于java的二三事
- 自己实现简单的智能指针
- MATLAB代码优化
- 回调函数
- Android学习笔记(十一):关于List<Map<String,?>>中添加map
- Hadoop分布式文件系统HDFS的工作原理详述
- SSH环境搭建(hibernate5.2.1,spring 4.2)
- 模拟实现memcpy和memmmove
- 矩阵填数的变相应用
- 多线程的代价及上下文切换
- 【ITOO】MVC简单介绍