为期三周的数学建模国赛培训昨天正式结束了,还是有一定的收获的,尤其是在MATLAB的使用上。
1. 一些MATLAB的基础性东西:
元胞数组的使用:http://blog.csdn.net/z1137730824/article/details/39206823
对于任意文件夹的同一格式的图片的批量读取:http://blog.csdn.net/haizimin/article/details/39646595
关于MATLAB在微分/偏微分方程以及其他高等数学问题中的应用。
关于MATLAB在优化问题的应用、自定义启发式贪心搜索算法以及智能优化算法的应用。
关于MATLAB在图像处理中的应用以及GUI的制作。
关于MATLAB在统计中的应用,以及与Excel的结合使用。
2. 在数学与统计中的应用
这部分是建模中的基础,也是MATLAB的强项所在。
其实很多的问题仅仅需要一个内置的函数就可以解决(dsolve,ode45,diff,kmeans,fminunc,anova1,var等),但是重点其实是理解背后的数学与统计背景,
这时就需要比较深厚的数学知识,现在来看,这方面我是比较欠缺的。尤其是对于统计这一块,方差分析、因子分析、主成分分析、回归分析,等等,都不是很熟悉。
所以其实函数要用到的时候临时查一下用法就行,重点还是背后数学功底的支撑。
3. 智能优化算法
在解优化问题时,MATLAB除了可以胜任Lingo所能做的所有工作外,在编写智能优化算法方面其实也特别有优势。
MATLAB的诸多智能算法工具箱已经足够强大,但是,很多时候我们还需要自己来编写智能算法的流程代码。
典型的有,遗传算法、神经网络、模拟退火,粒子群算法,元胞自动机等,这些算法最好有时间还是自己实现一遍,就用MATLAB写,也可以更深刻地理解其中的精髓所在。
4. 图像处理
第三次模拟之后又唤起了我对图像处理的兴趣。
而相比OpenCV来说,MATLAB对图像的处理与操作更方便简单,很多函数都是封装好的。
MATLAB对于图像的处理甚至是万能的:http://blog.csdn.net/iaiti/article/details/17094027。
针对我自己来说,必须先过一遍图像处理相关的理论知识,就看冈萨雷斯那本著名的教材,然后因为要练习C++的缘故,可以造一些自己认为有意义想要造的轮子。
其实归根到底,图像处理的精髓还是在数学,所以还是要夯实自己的数学功底。
然后进阶过程,就是结合OpenCV和MATLAB,在图像和视频处理这块,多做点有意思的玩意出来。
5. 其他
MATLAB的常用快捷键基本都熟悉了,程序设计中的逻辑能力也有了一定的提高。
不过相对于MATLAB的强大来讲,我现在仅仅是接触到了冰山一角而已,例如对于程序的运行效率问题,几乎从来没有考虑过。
就知道循环有时可以用向量化来提高效率,就是用fun系列的函数,例如:arrayfun。
MATLAB的学习,任重而道远。