印象中已经有好长一段时间没有聊MATLAB了,今天打算分享一个比较适合MATLAB入门的小例子。
两周前,知识星球的第二期实战训练开始了。
作为热身,通常我会在每一期实战训练的第一次练习发布一个较为基础的任务。
一来可以快速判断每位朋友的MATLAB水平,同时可以让基础较为薄弱的朋友掌握一些可以今后独立解决问题的能力。
第一次练习的主题是,理解代码,Debug,改写代码。
MATLAB自带一个画图的代码,叫做candle,这个代码是用来画股票的k线图。有兴趣的朋友可以直接在命令窗口输入open candle查看源代码。
这个代码存在一个问题,就是画出来的k线图和通常我们在同花顺或者财经新闻上看到的k线图不一样
这次练习的任务就是
1) 对candle的源代码进行改写,最终实现画出的k线图和平时我们所看到的一样
2) candle源代码中存在for循环,对源代码进行改写,取消循环,提高代码运算效率
以上就是我在实战训练中发布的第一次练习,接下来我聊一聊为什么我推荐大家这个例子。
1.
我曾经分享过两次如何自学MATLAB
如何自学Matlabmp.weixin.qq.com 如何自学MATLABmp.weixin.qq.com如果说,第一次的自学分享比作课文划重点,第二次的自学分享比作资料安利,那么这一次的自学分享就是纯粹的方法论了。
我强调过无数回,学习MATLAB,一定要清楚自己学习目的,为什么要学习它。
在我看来,兴趣才是不断学习与进步的长足动力。
我有一门MATLAB的考试,我导师逼我用MATLAB完成数据处理......这些理由都远不如我想用MATLAB给我媳妇做一个购物网站的新品推送。
生活,它看得见摸得着。而编程最大的魅力,莫过于将它融入生活,用编程解决生活中实实在在的问题。
candle就是这样一个生活中的例子。
用MATLAB复现生活,没你想象的那么难
2.
说来奇怪,知识星球里有超过150位朋友,但是从来没有人会问MATLAB的基础问题
没有人会问,为什么这段代码会报错
没有人会问,为什么数据维度不一致
没有人会问,为什么提示输入参数过多
解决问题是一时的,明白如何解决问题才是一辈子的。
通过candle这个例子,你可以自己设置断点,一步一步调试,去理解每一句代码在figure窗口中都画下了什么图形。自己尝试去修改一部分代码,再看看结果又改变了什么。
练习的真正目的才不是期待你能画出多逼真的k线图,而是为了你能养成debug的习惯,独立解决问题的能力。
Debug,才是你手中唯一的钥匙。
3.
入门MATLAB其实是一件很容易的是,一份源代码,设置一个断点,从头到尾看一遍,大概就知道怎么用这些函数了。
但是要真正用好MATLAB,还是需要多花些时间去思考。
一个很普遍的例子就是for循环,MATLAB最大的优势在于向量化编程,提高运算效率。
通过candle这个例子,你可以做一个修改前后的对比,会发现在取消for循环,用向量化编程之后,运算效率比修改之前提高了不止5倍。
类似的例子还有很多,比如正则法的运用,数据类型的转换,文件的读写等等,这些例子都是在平时日常学习生活中经常会使用到的,它值得你去思考如何优化现有手头的代码,去减少代码量,提高运算效率。
4.
可能有不少朋友会觉得,股票k线图对他们而言不是一个贴近生活的学习例子。
这个不用担心,这里我推荐大家一个微信小程序“MATLAB助手”,这个微信小程序是我自己花了很长时间开发的,里面有
- 1000份MATLAB源代码/模型
- 1000个MATLAB常见问答
- 20个例子,关于如何用MATLAB解决生活中的例子
不用贪心全都掌握,这不太可能,因为1000份源代码包括各个行业各种应用,比如深入学习、图像处理、汽车工程等。
你只要找其中一个你非常感兴趣的主题,只要一个,然后花些时间专注的把其中的代码看明白,再根据自己的需求进行改写,那你之后就可以很熟练地使用MATLAB,独立解决问题了。
这是我第三次写“如何自学MATLAB”的主题了。
这种感觉很神奇,随着时间的推移,我对MATLAB自学又有了不同的感悟,尤其是在做知识星球的这半年来,我尝试去换位思考大家的疑惑,去研究比较好的例子适合大家去做练习。
Candle就是我觉得很不错的例子,其中涉及到画图、for循环、debug等等,涵盖的知识点比较多,本身的源代码也很值得学习。
希望今天我分享一些自学心得可以帮助到大家的MATLAB学习
如果大家有兴趣,欢迎关注我的微信公众号“打浦桥程序员”,谢谢