提高matlab代码运行效率.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
提高 MATLAB 代码运行效率 本文讨论了提高 MATLAB 代码运行效率的七种方法。这些方法可以极大地提高 MATLAB 代码的执行速度,从而提高工作效率和生产力。 1. 循环矢量化 MATLAB 变量的基本类型是矩阵,当对矩阵的每个元素循环处理时,运算速度很慢。利用 MATLAB 提供的用于矢量化操作的函数,把循环矢量化,这样既可以提高编程效率,也可以提高程序的执行效率。例如,将循环代码:`i = 0; for n = 0 : 0.1 : 1000; I = i+1; y(i) = cos(n); end`矢量化为:`n = 0 : 0.1 : 1000; y = cos(n);`这样可以提高执行效率约 300 倍。 2. 在使用数组或矩阵之前先定义维数 在 MATLAB 中,变量在使用之前不需要明确地定义和指定维数。但当未预定义数组或矩阵的维数时,当需赋值的元素下标超出现有的维数时,MATLAB 就为该数组或矩阵扩维一次,这样就会大大降低程序的执行效率。因此,在使用数组或矩阵之前,预定义维数可以提高程序的执行效率。 3. 对矩阵元素使用下标或者索引操作 在 MATLAB 中,矩阵元素的引用可用两个下标来表示。例如:`A(i,j)`表示矩阵的第 i 行第 j 列的元素;`A(1:k,j)`表示矩阵 A 的第 j 列的前 k 个元素;`A(:,j)`表示矩阵的第 j 列的所有元素。求矩阵 A 的第 j 列元素的平均值的表达式为 `mean(A(:,j))`。 4. 用函数代替脚本文件 因为每次调用 MATLAB 的脚本文件都需要将不必要的中间变量加载到内存中,每执行一次,就加载一次。函数在调用时被编译成了伪代码,只需要加载到内存一次。当多次调用同一个函数时会运行快一些。因此尽量多使用函数文件而少使用脚本文件,也是提高执行效率的一种方法。 5. 用 Mex 文件编写循环代码 MATLAB 提供了与 C 和 C++ 的接口,那么我们可以在用 C 或 C++ 语言编写耗时的循环代码,然后通过接口程序在 MATLAB 中转换成 dll 文件,这就是我们所要的 Mex 文件,可以在 MATLAB 环境下直接执行。通过这种方法可以极大地提高计算速率。一般来说,C-MEX 文件的执行速度是相同功能的 M 文件执行速率的 20~40 倍。 6. 尽可能利用 MATLAB 内部提供的函数 因为 MATLAB 内部提供的函数绝对是各种问题的最优算法,那写程序都是他们大师级人物写出来的,程序应该说相当高效,有现成的为什么不用那!这个原则就不用实际的程序测试了。 7. 给数组或矩阵预分配内存 特别是使用大型数组或矩阵时,Matlab 进行动态内存分配和取消时,可能会产生内存碎片,这将导致大量闲置内存产生,预分配可通过提前给大型数据结构预约足够空间来避免这个问题。这一点原则是极其重要的,以至于在编写 m 程序时编辑器会给出提示“'ver' might be growing inside a loop. Consider prealloacting for speed.” 这七种方法可以极大地提高 MATLAB 代码的执行速度和效率,从而提高工作效率和生产力。
剩余15页未读,继续阅读
- 粉丝: 6702
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#全自动多线程上位机源码编程 0,纯源代码 1,替代传统plc搭载的触摸屏 2,工控屏幕一体机直接和plc通信 3,功能
- 基于三有源桥的模型预测控制仿真,可以独立控制输出侧两个端口的电压或者电流,动态响应快,也可以扩展至四有源桥电路
- VIENNA维也纳拓扑,三相整流simulink仿真:采用电压电流双闭环控制,电压外环采用PI控制,电流内环采用bang ban
- 永磁同步电机改进超螺旋滑模观测器无位置传感器控制 采用一种改进的超螺旋滑模观测器永磁同步电机无位置传感器控制,该观测器在传统ST
- comsol仿真模拟气液两相化学吸收CO2(氢氧化钠溶液NaOH和MEA溶液吸收CO2) 此案例为文献复现
- 内有cpar文件和simulink文件,并有演示操作视频,carsim+simulink联合仿真实实现道超车, 包含道决策,路径
- Comsol锂枝晶 相场法构建锂枝晶模型,单枝晶,多枝晶定向生长,三种物理场耦合,相场,浓度,电势? 拿到手就能用,适合新手入门
- matlab simulink三相四桥臂逆变器仿真模型 采用的是电压外环电流内环控制策略,交流测可以接不平衡负载,在负载不平衡的
- OPC配置服务端DCOM 一键配置 DCOM 一键搞定OPC远程通讯问题 省掉手动配置繁琐 OPC DCOM一键
- 西门子S7-1500暖通空调制药厂洁净空调PLC程序案例,硬件采用西门子1500CPU+ET200SP接口IO模块,HMI采用西