当前位置: 首页 > news >正文

2021建站公司/今日头条新闻

2021建站公司,今日头条新闻,sql server网站建设,怎么用手机做网站教程同样的算法和思路,不同的人写出来的程序,执行效率可能有成倍的差别。主要原因就是写代码的习惯,这里介绍点个人的小体会。1.向量化,少用for。很多人写Matlab代码,会沿用C语言的思路,经常用for循环逐个遍历矩…

同样的算法和思路,不同的人写出来的程序,执行效率可能有成倍的差别。主要原因就是写代码的习惯,这里介绍点个人的小体会。

1.

向量化,少用for。很多人写Matlab代码,会沿用C语言的思路,经常用for循环逐个遍历矩阵或者向量的元素,这是造成代码执行效率低的主要原因。Matlab顾名思义就是矩阵实验室,对矩阵和向量的处理是特别优化的。在CPU的一个时钟周期里,如果导入的是向量或者矩阵,在intel的一些底层库的支持下,可以用一个指令处理一批数据,相当于是批量并行的。如果用for循环,一个时钟周期只能处理一个矩阵元素,自然慢了。比如,用find代替for循环查找向量中的某个元素。用01二值的向量做布尔运算,可以代替很多循环和if判断,速度提升非常显著。这个方法还能精简代码,增强程序的可读性。

2.

建立查找表,空间换时间。对于碰撞检测,灰度变换等操作,如果用for循环遍历的话,往往需要两层循环,计算量呈现平方量级的增长。这时候,建立查找表往往可以实现成百倍的效率提升。以灰度变换为例,最简单的就是8位的图片,建立一个256个元素的向量,把要替换的灰度填写到这个向量里。做变换的时候,直接查找就可以了。如果条件更为复杂,可以建立二维的,甚至n维的查找表。本人曾经用这个方法,把一个程序的计算时间从十分钟缩短到7秒。查找表实际上是一种空间换时间的操作,在具体应用的时候,需要权衡。一般来说,现在内存都比较大了,还是挺实用的。另外,需要说的是,这种方法会降低点程序的可读性,如果你的程序速度已经很快了,就没必要用了。

3.

少用全局变量global,用传递参数代替。用global确实方便,不需要传递参数了。但少写点代码的代价可能是计算时间延长。如果计算量很大的话,还是建议多写点代码。

另外,有些人喜欢把中间变量输出来,如果出现刷屏的情况,屏幕的变量不断跳动,说明输出已经严重影响到内部的计算速度了。我的经验是会降低一两倍。

说点题外的,很多人喜欢沿用C语言的习惯,循环的中间变量用i和j,这在Matlab里是非常不推荐的。因为有特殊的含义,比如5+3i,这里的i表示虚数。一般情况下,使用i和j都没问题,但就怕出现这种特殊表示,那你查起来,就费劲了,甚至会觉得出错莫名其妙。我的习惯是用m、n代替。

在判断是否相等的语句中,比如x==2,这种写法也是不推荐的。建议是2==x,因为有可能把==写成=,这样的差别是很难看出来的,而且程序根本不会报错,而是每次都返回true!出现这种错误,也是很难排查的。而如果写成2==x,如果少输入一个等号,就会报错,及时地发现这个错误。这个习惯也适合C等其他语言程序的编写。

注意细节,养成习惯,会让你的代码更加稳健,出错概率低。这样长久下去,你写程序也会越来越自信。

http://www.lbrq.cn/news/1533385.html

相关文章:

  • wordpress分类设置seo/优化网站找哪家
  • 淘宝客如何做淘宝客网站推广/交换神器
  • 建立网站有哪几种方式/软文营销的定义
  • 网站建设的来源/友情链接英文翻译
  • 肃宁网站制作价格/seo外包方案
  • 合肥网页制作联系方式/广州seo服务外包
  • 女生做网站主题有哪些/友链外链app
  • 门户手机版网站/网络营销的八大职能
  • 海珠做网站/广告联盟平台挂机赚钱
  • 咋样做网站/宁波seo专员
  • 广州免费制作网站软件/网站制作过程
  • wordpress网站备份/地推团队接单平台
  • 二级建造师注册查询/google推广seo
  • 静安企业网站制作/苏州网络推广服务
  • 安卓网站开发环境/微营销推广方案
  • 手机网站制作教程软件/百度客服电话24小时客服电话
  • 用织梦做网站有什么公司会要/seo搜索
  • 家庭宽带做网站服务器/全世界足球排名前十位
  • 哪个网站有收藏加购做积分任务/内部搜索引擎优化
  • php sqlite 做网站/小学生班级优化大师
  • 西安网站开发公司价格/浏览器下载
  • 云南省住房建设厅网站/优化关键词推广
  • 房地产交易中心官网/seo网站建站
  • 西安专业做网站的公司哪家好/网络广告策划
  • 竞价网站做不做链接/郑州seo多少钱
  • 有哪些是外国人做的网站/网页优化包括什么
  • 外汇局网站预收货款报告怎么做/国际军事新闻
  • 网站运营专员具体每天怎么做/深圳网络营销推广培训
  • 网站结构优化包括哪些/免费推广方式有哪些
  • 沈阳做招聘网站/今日国际新闻最新消息事件
  • Python数据可视化利器:Matplotlib从入门到实战全解析
  • Spring Boot 集成 Redis 发布订阅实现消息通信
  • SED项目复现学习实录
  • Git Commit 提交信息标准格式
  • 使用RealSense相机和YOLO进行实时目标检测
  • 升级Android系统webview