最近在网上查了一些资料,并结合自己的经验,就如何提高matlab计算效率,总结一下几个原则:

1. 提前给数组分配大小。

例如:在程序循环时用到数组变量 a ,若知道数组 a 的大小或者知道 a 的大小上界,则可以提前给数组a 分配大小。一般MATLAB也会给没有提前

分配大小的变量数组下面标示红线,提醒修改。

a=zeros(10,10)生成一个10行10列的零矩阵。

a=100*ones(10,10)生成一个10行10列的矩阵,并且每个元素都是100。

a=(1:10)生成一个从1到10的1行10列矩阵。

2. 尽量用矢量计算,减少 for 循环。

最近我也才意识到这一点,matlab自带的很多函数都支持矢量计算。直接矢量计算,避免大量的for循环。

用 min 函数举例:

clc

a=(1:1000000);

tic

for i=1:1000000

a(i)=min(a(i),100);

end

toc

tic

b=max(a,100);

toc

结果显示:

时间已过 0.028604 秒。

时间已过 0.006296 秒。

可见后者比前者的 for 循环快。

3. 尽量调用 maltab自带的函数来实现一些功能。

这个是显而易见的,matlab自带的函数由大神级的matlab开发人员所编写,他们当然会在计算速度上做不少优化,一定比我们编写的好。

4. 少用 find 函数,用 logical 替代。

查找替换矩阵中的元素,过去用 find 函数,现在用 logical 更好。

下面用一个例子,分别测试 for 循环,find函数,logical函数查找替换:

a=(1:10000000);

tic

for i=1:length(a)

if a(i)>5

a(i)=1;

end

end

toc

tic

a(find(a)>5)=1;

toc

tic

a(logical(a)>5)=1;

toc

结果显示:

时间已过 0.407840 秒。

时间已过 0.378585 秒。

时间已过 0.119918 秒

可见,find 函数仅仅比 for 循环快一点,而 logical 函数则显著快于它们。

5. 大规模的循环,可以调用 c语言或 C++来 计算。

这个见不少资料说,自己还没试过,有机会测试一下。

如何提高matlab的运算速度慢,如何提高 matlab 计算速度 运算效率相关推荐

  1. 如何提高 matlab 计算速度 运算效率

    最近在网上查了一些资料,并结合自己的经验,就如何提高matlab计算效率,总结一下几个原则: 1. 提前给数组分配大小. 例如:在程序循环时用到数组变量 a ,若知道数组 a 的大小或者知道 a 的大 ...

  2. 如何提高matlab的运算速度慢,如何提高MATLAB的运算速度

    根据我的一些经验和相关的参考资料,要想提高其运算的速度,以下的方法可以试一下: (1)尽可能地用向量化的数组运算代替循环,尽可能地减少使用户for或while循环,这是因为matlab执行循环运算效率 ...

  3. matlab矩阵作分钟平均,提高matlab运行速度和节省空间的心得合集(ZT)

    B = aiTemp(A(iXmin:iXMax,iYMin:iYMax,iZMin:iZMax)); 当然了,改进的前提是知道矩阵A的非零元(即值为true的元素)大致的分布,也就是能够求出iXmi ...

  4. python 加快计算速度_python怎么提高计算速度

    下面是python中的一个函数计算代码: loops=25000000 from math import* a=range(1,loops) def f(x): return 3*cos(x)+4*s ...

  5. python计算速度_python中如何提高计算速度?

    下面是python中的一个函数计算代码:loops=25000000 from math import* a=range(1,loops) def f(x): return 3*cos(x)+4*si ...

  6. 如何快速提高英飞凌单片机编译器 TASKING TriCore Eclipse IDE 编译速度

    1.前言 使用英飞凌单片机编译器 TASKING TriCore Eclipse IDE 开发编译时,想必感受最深刻的就是编译速度,那是非常慢了,如果是部分修改的源文件编译还好,不用等太久,而如果选择 ...

  7. INFOCOM 2021最佳论文奖:一种新颖的分布式算法提高在GPU集群上训练大型AI模型的效率

    INFOCOM 2021最佳论文:Exploiting Simultaneous Communications to Accelerate Data Parallel Distributed Deep ...

  8. 科学计算机怎么算分数加减,《如何提高五年级学生异分母分数加减法计算正确率》...

    数学五年级教材中的异分母分数加减法计算,难度增加了.不少学生出现了计算能力差,计算速度慢,计算错误率偏高的问题.引导学生动手操作.自主探索,不仅是转变学生数学学习方式的需要,也是学生发现算理,理解算理 ...

  9. 提高Stable Diffusion十倍计算速度以及解决内存崩溃问题

    在启动Stable Diffusion时一直报Torch not compiled with CUDA enabled警告,一开始没在意本着能用就行的态度凑活用,每个图都耗时十多秒,然后本着好奇Tor ...

  10. 模板匹配 -提高计算速度

    误差平方和算法(SSD) 误差平方和算法(Sum of Squared Differences,简称SSD算法),也叫差方和算法.实际上,SSD算法与SAD算法如出一辙,只是其相似度测量公式有一点改动 ...

最新文章

  1. 人工智能机器视觉的未来发展趋势
  2. Python调用MySQL模块初试
  3. golang中的指针
  4. CF1037H Security——SAM+线段树合并
  5. leetCode-88. 合并两个有序数组
  6. 《LoadRunner 没有告诉你的》之四——理解性能
  7. java 注释 过时_Java 注解
  8. 重装Windows后修复Linux引导
  9. insertion-sort-list——链表、插入排序、链表插入
  10. Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template
  11. primefaces教程_Primefaces树,TreeNode,TreeTable示例教程
  12. 运筹OR帷幄,运筹优化的剖析与应用
  13. phpwind测试实战之phpwind安装(三)
  14. 服务器API压力测试 -ab工具
  15. python爬虫--代理的使用
  16. 当硅谷码农还在吃着火锅唱着歌,工作已经快没了
  17. leetcode 第1题【两数之和】C语言
  18. 响应式织梦模板装修装饰设计类网站
  19. 乐吾乐零部件拆解可视化解决方案
  20. 制作自己的Tomcat镜像

热门文章

  1. Go语言(golang)的错误(error)处理的推荐方案
  2. 美化Hexo 个人博客
  3. ubuntu16.04登录后只有蓝色背景解决方法
  4. 【项目二、蜂巢检测项目】二、模型改进:YOLOv5s-ShuffleNetV2
  5. Linux学习(4)-文件颜色,绿色,蓝色,白色,红色等代表的意义
  6. Ubuntu无法调节屏幕亮度问题
  7. shopex mysql索引_mysql版本太高导致shopex4.8.5无法安装
  8. Java中常见常用的类
  9. 《经济学原理》——读书笔记(二)
  10. 2018年全国邀请赛(江苏) 比赛总结