看校历戳这 点击收放校车助手 New!快速直达

西工大三航四方BBS站

翱翔门户登录  找回密码
 立即注册
查看: 311|回复: 8

[学术分享] matlab的一些编程技巧

[复制链接]

40

主题

364

帖子

2万

积分

站长助理

一个渴望成为技术宅的侠客

Rank: 8Rank: 8

积分
20443
硬币
9437
 楼主| 发表于 2017-12-18 11:33:42 | 显示全部楼层 |阅读模式
本帖最后由 蓝色天使4 于 2017-12-18 11:52 编辑
    最近楼主在学习电机的simulink仿真,感觉要处理的数据量很大,写了个算法处理,速度很慢大概要30秒跑完。(仿真步长为1e-7,总时间0.4s,最后向外输出的电气信号数据量就有0.4*10^7个)楼主接触matlab时间很晚,之前编的程序处理的数据都很小,所以一些代码写法也不优,只求能把任务完成就好,现在头一次碰到这么多数据,为了节约时间,就不得不上网找一些matlab编程的技巧。
————————————————————————————————————
以下几篇内容个人觉得比较有收获:
1.有哪些让人相见恨晚的 MATLAB 命令? - tengmoon的回答 - 知乎
2.Matlab向量化编程
3.Matlab中的函数句柄@
4.Matlab逻辑索引
5.Matlab 高性能代码编写(三)内存是要先分配再使用的
6.关于profiler的介绍和使用心得————————————————————————————————————
主要的收获有以下三点:
1.matlab应尽量采用向量化编程,而不for循环(网页1,网页2)
2.提高matlab程序运行速度的方法有:
--尽量采用逻辑索引(属于向量化编程)
--参数预分配:1.zeros 2.i=len:-1:1 (文章5)
--尽量按列向量存取数据 (文章5 附件)
--尽量不要设一些不必要的变量 (文章5 附件)
(后两条提升速度并没有参数预分配明显;文章5 的一个层主提供了一个pdf文档,对上述方法能提高速度的原因做出了解释,我放在文末)
3.我在看文章1时碰到了fh = @(x)x.^2+sin(x) 这样的写法,查到文章3才知这叫函数句柄,感觉它对精简代码较有帮助。
————————————————————————————————————
    在文章2中,作者指出“高效的编程包括高效的开发和高效的运行”。有时就要在“给代码瘦身”和“提高程序运行速度”间做权衡。文章1中末尾给出的用函数句柄写的代码,虽然很精简,但我用profiler测试了下发现,其运行速并没有文章1开头提出的“逻辑索引法快。具体写代码时,还是要根据这段程序的目的,在“更简洁”和“更高效”之间做权衡吧。

    因为本人不是搞cs的,以上说法有什么不对的地方,欢迎拍砖。








MaximizingCodePerformancebyOptimizingMemoryAccess.pdf

383.14 KB, 下载次数: 2

售价: 10 硬币  [记录]

Memory performance.zip

6.62 KB, 下载次数: 7

这个是pdf里示例代码 感觉不太有用 就不收费了

评分

1

查看全部评分

[发帖际遇]: 蓝色天使4 乐于助人,奖励 3 人品. 幸运榜 / 衰神榜
最欣赏那些在生活中能给别人带来快乐的人,但我也希望他们的快乐是由内而外的。
回复

使用道具 举报

28

主题

330

帖子

3万

积分

LV6已臻大成

Rank: 6Rank: 6

积分
33228
硬币
15768
发表于 2017-12-18 11:48:51 | 显示全部楼层
[发帖际遇]: around 冒着生命危险,扶起了老奶奶,获得 4 人品. 幸运榜 / 衰神榜
回复

使用道具 举报

7

主题

64

帖子

1万

积分

LV6已臻大成

Rank: 6Rank: 6

积分
15037
硬币
9160
发表于 2017-12-18 12:13:11 | 显示全部楼层
赞赞赞!!!
回复

使用道具 举报

发表于 2017-12-18 14:12:19 | 显示全部楼层
赞赞赞,期待又一个大神出现
[发帖际遇]: 打饭时 独在风中凌乱 多分到了一块肉,多吃了 12 硬币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2017-12-18 14:12:19 | 显示全部楼层
赞赞赞,期待又一个大神出现
回复 支持 反对

使用道具 举报

发表于 2017-12-18 14:12:25 | 显示全部楼层
赞赞赞,期待又一个大神出现
[发帖际遇]: 独在风中凌乱 在论坛发帖时没有注意,被小偷偷去了 7 硬币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

40

主题

364

帖子

2万

积分

站长助理

一个渴望成为技术宅的侠客

Rank: 8Rank: 8

积分
20443
硬币
9437
 楼主| 发表于 2017-12-19 00:04:37 | 显示全部楼层
独在风中凌乱 发表于 2017-12-18 14:12
赞赞赞,期待又一个大神出现

最欣赏那些在生活中能给别人带来快乐的人,但我也希望他们的快乐是由内而外的。
回复 支持 反对

使用道具 举报

40

主题

364

帖子

2万

积分

站长助理

一个渴望成为技术宅的侠客

Rank: 8Rank: 8

积分
20443
硬币
9437
 楼主| 发表于 2017-12-19 00:05:03 | 显示全部楼层

谢谢!
最欣赏那些在生活中能给别人带来快乐的人,但我也希望他们的快乐是由内而外的。
回复 支持 反对

使用道具 举报

40

主题

364

帖子

2万

积分

站长助理

一个渴望成为技术宅的侠客

Rank: 8Rank: 8

积分
20443
硬币
9437
 楼主| 发表于 2017-12-19 00:05:56 | 显示全部楼层
[发帖际遇]: 蓝色天使4 发帖时在路边捡到 5 人品,偷偷放进了口袋. 幸运榜 / 衰神榜
最欣赏那些在生活中能给别人带来快乐的人,但我也希望他们的快乐是由内而外的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|bbs.nwpu.edu.cn ( 陕ICP备05010979

GMT+8, 2018-1-23 05:59 , Processed in 0.052400 second(s), 19 queries , Memcache On.

Powered by Discuz! X3.2有问题(ง •̀_•́)ง加客服群:439465489

© 2011-2016 西北工业大学三航四方BBS论坛

快速回复 返回顶部 返回列表