matlab心得及学习方法(不断更新)
matlab实训心得体会

matlab实训心得体会《MATLAB实训心得体会》一、引言随着科学技术的飞速发展,数值计算和仿真技术在各个领域的应用越来越广泛。
MATLAB作为一款强大的数学计算软件,在工程、物理、经济等多个领域都发挥着重要的作用。
为了更深入地掌握MATLAB的应用,我参加了为期一个月的MATLAB实训项目。
通过这次实训,我对MATLAB有了更全面的认识,也收获了许多宝贵的经验和技能。
二、实训过程在实训过程中,我们主要进行了以下几个方面的工作:1.基础知识学习:首先,我们系统地学习了MATLAB的基础知识,包括语法、数据类型、函数、程序流程控制等。
这些基础知识是后续学习的基础,对于我们理解和应用MATLAB至关重要。
2.编程实践:在掌握了基础知识后,我们开始进行编程实践。
通过编写各种类型的程序,如矩阵运算、数据处理、图形绘制等,来提高我们的编程能力和解决问题的能力。
3.项目实战:最后,我们参与了几个实际项目。
在这些项目中,我们不仅将所学的知识应用到实际问题中,还学会了如何与团队成员协作、如何解决突发问题等。
三、实训收获经过一个月的实训,我取得了显著的进步,具体表现在以下几个方面:1.提高了编程能力:通过大量的编程实践,我的MATLAB编程能力得到了很大的提高。
现在,我已经能够熟练地运用MATLAB解决各种复杂的问题。
2.加深了对MATLAB的理解:实训让我更深入地了解了MATLAB的工作原理和应用场景。
我意识到,MATLAB不仅仅是一款编程软件,更是一个强大的数学计算和仿真平台。
3.培养了团队协作能力:在项目实战中,我学会了如何与团队成员进行有效的沟通和协作。
我们共同解决问题、分享经验,最终完成了项目目标。
4.增强了自信心:通过实训,我成功地解决了许多实际问题,这让我对自己的能力和潜力充满了信心。
我相信,在未来的学习和工作中,我会更加自信地面对各种挑战。
四、展望未来虽然我在实训中取得了一定的成绩,但我深知自己还有很多不足之处需要改进。
学习Matlab心得体会

学习Matlab心得体会《学习 Matlab 心得体会》Matlab 作为一款功能强大的数学计算软件,在科学研究、工程设计、数据分析等众多领域都发挥着重要作用。
在学习 Matlab 的过程中,我不仅掌握了一门实用的工具,还培养了自己解决问题的思维和能力。
最初接触 Matlab 时,我被它丰富的函数库和简洁的语法所吸引。
它的界面友好,操作相对直观,对于初学者来说,入门并不是一件十分困难的事情。
然而,要真正熟练掌握并运用它来解决复杂的问题,却需要付出持续的努力和不断的实践。
学习 Matlab 的基础知识是至关重要的一步。
从变量的定义、数据类型的了解,到基本的数学运算、矩阵操作,每一个环节都为后续的深入学习打下了坚实的基础。
在这个阶段,我通过大量的示例和练习,逐渐熟悉了 Matlab 的基本语法和常用函数。
比如,学会了如何创建向量和矩阵,进行加减乘除等运算,以及如何提取矩阵的特定元素或子矩阵。
掌握流程控制语句是提升编程能力的关键。
Matlab 中的条件语句(如 ifelse 结构)和循环语句(如 for 循环、while 循环)让我们能够根据不同的条件执行相应的操作,实现复杂的逻辑。
通过这些语句,我们可以对数据进行筛选、处理和分析。
例如,在处理一组数据时,我们可以使用循环来遍历每一个元素,并根据特定的条件进行相应的处理,从而实现数据的清洗和整理。
函数的编写是 Matlab 学习中的一个重要环节。
自定义函数可以将复杂的任务分解为多个相对简单的模块,提高代码的可读性和可维护性。
在编写函数的过程中,需要清晰地定义输入和输出参数,合理地组织代码结构。
通过不断地实践,我逐渐学会了如何设计高效、准确的函数来解决实际问题。
绘图功能是 Matlab 的一大亮点。
它能够以直观的方式展示数据的分布和趋势,帮助我们更好地理解和分析数据。
从简单的二维图形(如折线图、柱状图)到复杂的三维图形(如曲面图),Matlab 提供了丰富的绘图函数和选项,让我们可以根据需要定制图形的外观和细节。
matlab学习心得体会(精选18篇)

matlab学习心得体会(精选18篇)matlab学习篇1matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。
他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。
matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。
本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。
通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。
matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。
matlab学习心得体会篇2MATLAB中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。
他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。
MATLAB内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。
本学期通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。
通过理论课的讲解与实验课的操作,使我在短时间内学会使用MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。
MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。
matlab学习心得体会篇3这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。
matlab实训心得体会(通用23篇)

matlab实训心得体会(通用23篇)matlab实训篇1自己刚刚接触matlab有半个学期的时间,说实话我现在对MATLAB还是摸不着头脑,一方面是自己接触的时间太短,另一方面,就是自己在上机方面投入的时间有限,实践比较少。
现在,我对MATLAB的印象仅仅在解决习题和绘制图形上,但是我很喜欢MATLAB的简单的语法,易于绘制图形,编程也非常容易, 并且具有功能强大的开放式的toolbox。
因此,尽管我一直没有这方面的应用,但是我还是对它非常感兴趣,自己正打算暑假好好研究研究MATLAB。
下面是我学习MATLAB在理论和实践方面的一点心得与体会,可能有些地方自己理解的不是很正确,但是随着学习的深入,我想我可以发现自己的错误所在。
首先我想说的是,在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。
但是MATLAB跟其他语言也有着很大的不同。
现在用的比较多的编程语言,除了MATLAB就应该是c、c++、VHDL,VB和Delphi也接触过,如果自己抱着“把其他语言的思想运用在MATLAB里面”的话,那么我想,即使程序运行不出错,也很难把握MATLAB的精髓,也就很难发挥MATLAB的作用了。
众所周知MATLAB是一个基于矩阵运算的软件,但是,真正在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。
在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。
因此,在MATLAB编程时,for循环(包括while循环)到处都是。
.这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。
我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。
MATLAB博大精深,涉及的内容很多,所以,我认为不要试图掌握MATLAB的每一个功能,熟悉和你专业最相关的部分就可以了,这也是老师在课堂上经常说的。
matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇)ma tlab学习心得体会(精选3篇)首先我想说的是,matla b跟其他语言不一样(我用的比较多的编程语言,除了matlab就应该是c或c++了,VB和Delphi也接触过,我想版面(matlab版)大部分人也差不多),如果你抱着“把其他语言的思想运用在matla b里面”的话,那么我想,即使程序运行不出错,也很难把握mat lab的精髓,也就很难发挥matlab的作用了。
所以,如果你是希望matlab作为VC的附属品,即你不想在matlab上面花太多功夫,只纯粹想用matlab来完成VC做不了或很难做成的任务的话,那么,这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具,使它更有效为你服务的话,那么,希望本文对你有所帮助。
Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,fr循环(包括hi le 循环)满天飞…………..这不仅是暴殄天物(没有发挥mat lab所长),还浪费了你宝贵的时间。
对此,版友MVH在他的“MATLAB 小技巧”一文中也有所涉及,雷同的东西我也就不重复了,matlab的“帮助”里面也有相关的指示。
我这里想说的一点是,初学者往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++的思想。
举个例子吧,下面的代码是我的一个师弟写的,我想他接触matlab 也有2、3年时间了(在此说明一下,接触2、3年并不是表示每天都会跟mat lab打交道,我本人也不是,只是在一年某几个时间段里面连续使用),但是仍然会出现类似的问题:上面的代码实现了一个目的――检查信号i mf1(一个向量)是否存在绝对值大于1的点,这显然是基于C++的思想写出来的。
Matlab学习心得与体会

Only in boiling water, tea can develop the rich aroma of life.简单易用轻享办公(页眉可删)Matlab学习心得与体会Matlab学习心得与体会篇一:MATLAB学习心得一.对MATLAB的认识正如课本《MATLAB教程及实训》中的前言所说,MATLAB是MathWords公司于1984年开发的,目前已经发展成国际上最流行、应用最广泛的科学与工程计算软件之一。
MATLAB集合矩阵云运算、数值分析、图形显示和仿真等于一体,被广泛应用于自动控制、数学运算、计算机技术、图像信号处理、汽车工业、语音处理等行业。
MATLAB它将计算、可视化和编程等功能同时集于一个易于开发的环境。
MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程制图和用户界面设计等。
目前,MATLAB已经成为应用代数、自动控制理论、数字信号处理、动态系统仿真和金融等专业的基本数学工具,各国高校纷纷将MATLAB正式列入本科生和研究生课程的教书计划中,成为学生必须掌握的软件之一。
MATLAB是matrix laboratory的缩写,它的产生是与数学计算有密切的关系。
从1980年发展到现在已经是一个交互式开发系统,其基本数据要素是矩阵。
MATLAB系统是由MATLAB开发环境和MATLAB语言,MATLAB数学函数库、MATLAB图形处理系统和MATLAB应用程序接口(APL)5部分组成。
MATLAB的有以下特点1运算功能强大 2编程效率高3强大而智能化的作图功能 4可扩展性强 5Simulink 动态仿真功能二.我对MATLAB的掌握程度在短课时选择了本书1、2、3、4、5、7章的内容学习1. MATLAB R20__a软件的概述(略)。
2. MATLAB常见字符及基本运算在本人的自主学习以及老师的授课下我已经初略的掌握了MATLAB R20__a的基本使用方法:MATLAB R20__a的开发环境、MATLAB R20__a的其他管理、MATLAB的文件处理工具、MATLAB R20__a的帮助系统(1)数据类型数组:字符型、数值型、元胞型、结构体型、Java型和函数句柄,其中数值型有包括单精度型和双精度型。
Matlab心得及学习方法(不断更新)

Matlab心得及学习方法(不断更新)P.S. 那些网上转载我的文章不写明出处的傻眼了吧?!老子更新了!发现现在很多人(找工作的或者读博的)都想要学习或者正在学习Matlab,问我要怎么学习。
其实我虽然写Matlab代码的经验还算丰富,但是还不能说是一个很好的Matlab编程人员,这里有一些心得,分享给大家希望对大家有所帮助。
关于如何学习Matlab我的学习方法很简单:Matlab是练出来的,而不是看出来的。
很多人问我有没有比较好的Matlab教材,我说随便找一本吧,都可以。
只要书里面有最基本的语法和命令,对于一个有编程基础的人,Matlab可以在一个下午的时间内学会。
当然,仅仅是学会。
如果想要对Matlab比较得心应手,那么最好的办法就是练习。
练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计量或者宏观教材里面的一些算法写写出来。
一开始可能很慢,但是当你完成了一个比较大的project的时候,你的Matlab的功力将会有巨大的提升。
当然,在你写程序之前,多读一些别人写的好的code是非常有帮助的。
一些Matlab的经验1、适当了解一些数值计算、数值分析以及最优化的理论用Matlab的无非是做数值计算或者最优化,这也是Matlab的强项,Matlab有足够多的工具箱解决这些问题。
但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。
这一点在程序碰到问题或者计算结果不理想的时候尤为重要。
很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用Matlab的工具箱而导致的。
比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的算法来考虑这个问题,最后发现是由于目标函数的某一部分十分平缓导致的。
当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。
有个学化学同学就曾问我一个程序怎么写,说matlab肯定可以完成的。
matlab学习心得体会

matlab学习心得体会在学习Matlab期间,我总结了以下几点学习心得体会:1. 学习Matlab的基础知识是非常重要的。
Matlab是一种高级编程语言,功能强大且灵活,但它也有自己独特的语法和特性。
在学习Matlab之前,我先花了一些时间学习基本的语法和操作,包括变量的定义、矩阵的操作、流程控制语句等。
掌握这些基础知识对于后续的学习和实际应用非常重要。
2. 实践是学习Matlab的关键。
在学习Matlab的过程中,我发现最有效的方法是通过实践来巩固和运用所学的知识。
我尝试了许多不同的练习和项目,包括数值计算、数据分析和图像处理等。
通过这些实践,我更深入地理解了Matlab的各种功能和用法,并且锻炼了自己的编程和问题解决能力。
3. 利用Matlab的官方文档和在线资源。
Matlab有非常完善的官方文档和在线资源,包括用户手册、函数参考、示例代码等。
这些资源对于学习和解决问题非常有帮助。
在遇到问题或者需要学习某个功能时,我通常首先会查阅官方文档和在线资源,寻找相关的信息和示例代码。
这样不仅能够更快地解决问题,还可以学习到一些更高级和实用的用法。
4. 与其他人交流和分享。
在学习Matlab的过程中,我发现与其他人交流和分享经验是很有益的。
我经常参加一些Matlab的学习和交流活动,例如线上学习小组、论坛和社交媒体等。
通过与其他人讨论问题、分享经验和互相学习,我能够扩展自己的视野,了解到更多有关Matlab的应用和技巧。
总的来说,学习Matlab需要坚持不懈的努力和实践,并且灵活运用各种学习资源。
掌握Matlab的基础知识、通过实践巩固所学还有与他人交流和分享经验是提高Matlab 水平的有效方法。
通过不断地学习和实践,我逐渐提升了自己的Matlab编程能力,也发现了Matlab在科学计算和工程应用中的巨大价值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除matlab心得及学习方法(不断更新)篇一:matlab心得及学习方法matlab心得及学习方法(不断更新)发现现在很多人(找工作的或者读博的)都想要学习或者正在学习matlab,问我要怎么学习。
其实我虽然写matlab 代码的经验还算丰富,但是还不能说是一个很好的matlab 编程人员,这里有一些心得,分享给大家希望对大家有所帮助。
关于如何学习matlab我的学习方法很简单:matlab是练出来的,而不是看出来的。
很多人问我有没有比较好的matlab教材,我说随便找一本吧,都可以。
只要书里面有最基本的语法和命令,对于一个有编程基础的人,matlab可以在一个下午的时间内学会。
当然,仅仅是学会。
如果想要对matlab比较得心应手,那么最好的办法就是练习。
练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计量或者宏观教材里面的一些算法写写出来。
一开始可能很慢,但是当你完成了一个比较大的project的时候,你的matlab 的功力将会有巨大的提升。
当然,在你写程序之前,多读一些别人写的好的code是非常有帮助的。
一些matlab的经验1、适当了解一些数值计算、数值分析以及最优化的理论用matlab的无非是做数值计算或者最优化,这也是matlab的强项,matlab有足够多的工具箱解决这些问题。
但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。
这一点在程序碰到问题或者计算结果不理想的时候尤为重要。
很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用matlab的工具箱而导致的。
比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的算法来考虑这个问题,最后发现是由于目标函数的某一部分十分平缓导致的。
当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。
有个学化学同学就曾问我一个程序怎么写,说matlab肯定可以完成的。
了解清楚之后才明白原来他想做的就是一个受限最小二乘。
但是他不懂得什么是最小二乘(因为没怎么学过数学),当然面对这个问题无从下手。
2、理解matlab中时间空间的转化这个问题没有人强调,但我觉着蛮重要。
这里的关键点其实很简单,就是尽量减少重复计算,哪怕是多项式复杂度以内的计算。
重复计算的内容应该适时保存到内存中,以后直接调用。
一个程序可能会重复运行几千次几万次,一点点的浪费时间都可能被放大很多。
空间(内存)我们是可以扩充的,但是时间不是,所以绝大多数时候我们需要放弃空间,获得时间上的迅捷。
这里有个故事,曾经在某技术论坛上看到的,说腾讯公司早期做的QQ实在太过垃圾,他们追踪过QQ的行为,发现在几分钟时间里重复调用了某同一注册表项几百次。
显然注册表的内容所占内存是有限的,甚至是可以忽略的,但是每次读注册表项可能都要读硬盘,这里的时间花费是很大的,为什么不把这项内容直接存储在内存里呢?一个比较经典的例子:考虑交换两个变量a,b的值,有如下写法:c=a;a=b;b=c;或者:a=a+b;b=a-b;a=a-b;第一种写法多占了内存,因为需要多申请一个c的内存空间;第二种写法节省了内存空间,但是却多了三次计算时间。
请问哪种好?不一定,看你的时间空间的权衡。
但是具体到这个例子来说,第二种是不推荐的,因为:首先,第二种程序晦涩难懂,难以维护,内存不至于低到不能存储一个变量;第二,如果两个数字都特别特别大,计算a的时候会有溢出的危险。
3、形成良好的编程规范我想几乎所有学过编程的人都被这样告诫过。
比较好的是matlab自带的编辑器本身就可以自动缩进之类的,程序十分易读。
但是还有一些东西是有些人不曾注意过的。
比如变量名,一个好的变量名一定要有清晰的含义,让人一看就能明白,否则日后的修改维护必然要花费更多的时间去识别这些变量名的含义。
这一点可以参考/articles/1038.htmlhttp://coolsh /articles/1990.html这里面详细列举了很多命名的规则和技巧。
还有一点就是注释。
好的注释可以极大的方便以后的维护以及代码的重用。
我的习惯是在代码的开头都要交代这个代码是干什么用的,怎么用等等。
在程序中一个大块的功能模块也要加上注释告诉大家你在做什么。
如果某个语句很复杂,可以加注释告诉大家这句到底在干什么。
这样写出来的程序维护起来或者他人使用起来将非常方便。
另有一篇十分有趣的文章分享给大家:如何写出无法维护的代码/articles/4758.html4、如果拿到一个任务而又没有思路,试着把问题分解或者转化。
之所以叫做程序,是因为我们所做的工作就是告诉计算机要做什么,该怎么做。
所以如果你的脑子里根本不知道这个问题该怎么解决的时候,你就更加无法写出程序。
找思路的一般方法是分解问题,然后逐个击破。
或者在特殊情况下,需要把问题转化。
分解与转化的第一步是把实际问题转化为数学问题。
这一步可能已经做好,可能没有。
如果没有,那么这一步就叫做数学建模。
绝大多数问题都可以转化为两类问题,一类是最优化问题,一类是求解问题。
如果你能知道你在最优化什么东西或者求解什么东西,问题就简单很多。
转化问题的第二步是把数学问题转化为程序(不是代码)。
也就是说,你要想清楚这个问题(最优化或者求解)是怎么一步步实现的。
这个过程可能很简单,有现成的方法用,也有可能很复杂,还可能涉及多种转化。
比如我们经济学中遇到的求解动态最优化,经常要把连续的东西离散化(离散化很重要!)。
最后,考虑怎么把你的程序转化为真实的代码。
这一步说简单很简单,因为只要你做好了以上两步,这一步是顺其自然的。
但是当然会有很多小的细节,也许这就是所谓的technique。
但是我还是觉着,学习编程不是学习technique,而是学习第二步,虽然本文关注的更多的是technique。
5、如果程序出错了,而又查不到语法的错误,使用断点编程中最可怕的错误不是语法,而是逻辑错误,因为逻辑错误是最难debug的。
一个很有用的工具就是断点。
断点应该是debug中最常用的工具。
matlab的编辑器中可以很方便的实现(在每一行的开头有个小横线,单击一下变成红点,然后就设置成断点了)。
当程序运行到断点之后就会中断,然后会在主窗口显示K>>的标志,这时你可以输入命令查看内存情况等等。
一步步的跟踪,直到变量值跟你的预期不一样,这时你就可以很容易的找到错误在什么地方发生了。
6、如果试了很多办法还是不能找到错误,那就尝试一下终极debug方法,适用于各种语言真的有这么强大的debug 方法么?有的!这个方法很简单,离开你的电脑,找一个人,随便什么人,说一遍你的程序的思路,说的越具体越好。
多数情况下,你在阐述的过程中,程序的错误就会突然从你的大脑里冒出来了。
如果实在找不到就找大街上的乞讨人员吧,给他们十块钱他们应该很乐意听你说的,并且说不定还可以给你一些很好的建议,然后告诉你,十年前他们也在做同样的工作。
7、理解通用与专用之间的权衡你可以写一个通用的程序,也可以写一个专用的程序,这需要你的权衡。
一般情况下,专用的程序你可以研究清楚其结构,从而找到最快的算法,而通用的程序则不能达到这点,因为要考虑到很多很多特殊的情况。
比如给定一个分布函数F(x),我想要写一个随机数生成器是的生成的随机数的分布函数为F(x).方法很简单,先生成一个均匀分布的随机数a,是的a~u(0,1),然后计算F的反函数在a处的值。
很多人可能会用fsolve之类的办法,但是这不是最快的。
如果我们已经知道F是一个单增的函数,那么这个解有且仅有一个。
这样我们就可以直接使用一些算法去解决他。
类似的问题还有如果我们知道导数,那么求最优化最好的方法也许是牛顿法,而不是用单纯形法去寻找,那样既不精确又慢但是通用的程序也是非常吸引人的,因为可以大大的减少开发的时间,如果计算时间不是首要考虑的问题的话。
8、尽量使你的程序更通用也就是说,尽量使你的代码能被重复利用。
这样可以节省很多写程序的时间,而你发现这些东西都是你写过很多遍的。
很多人没有一个写通用程序的好的习惯。
比如说下面一个最简单的例子:x=randn(10000,1);y2=zeros(10000,1);fori=1:10000y2(i)=exp(x(i));end这样写的问题在于,如果你的x需要改变了,比如改成100维,那么你需要修改不止一次。
但是如果你写成这样:x=randn(10000,1);y2=zeros(length(x),1);fori=1:length(x)y2(i)=exp(x(i));end那么是不是仅仅修改一个地方就可以了呢?9、尽量使你的程序模块化把需要重复进行的程序尽量写成函数,便于修改和维护。
写成函数的好处是使你在同一时间只关注一个问题,但是如果你把所有的东西都放在一个程序里,你可能需要考虑的问题就不止一个了。
10、在使用变量之前先进行声明,尽量少使用矩阵变维操作这不是matlab必须的,但是是十分建议的。
比如如果你写下了如下的代码:fori=1:10000y=y+i;end你没有声明y,而是直接试用了它,很可能会出现问题。
比如你的内存里之前已经有y,y=10,那么你的计算结果是不是会大10呢?更有可能的情况是你之前已经运行了这个程序,但是你的开头没有clear(开头使用clear也是很好的习惯)此外,尽量少使用矩阵变维的操作。
因为每次声明变量或者矩阵变维,matlab总要申请一个新内存空间,频繁进行变维操作会很快侵蚀掉你的内存空间,这点在大矩阵的时候特别重要。
11、计算尽量多的使用矩阵,尽量少的使用循环循环的好处是比较容易想,比较容易些,但是也比较难以维护,最重要的,速度很慢。
比如下面一个例子:x=randn(10000,1);ticy1=exp(x);tocticy2=zeros(length(x),1);fori=1:length(x)y2(i)=exp(x(i));endtoc输出结果:elapsedtimeis0.000287seconds.elapsedtimeis0.000963seconds.可见使用矩阵比使用循环快了三倍。
12、如果进行大量的重复操作,可以考虑使用并行计算比如在做montecarlo模拟的时候,你的每次循环都是独立的(每次循环不影响下一次循环的结果),那么可以考虑使用并行处理,如果你的电脑是多核的。
首先,你要用以下命令创建几个并行的进程:matlabpoollocal4其中4是你的计算机核心数。
然后,使用parfor代替for循环就可以了。
但是使用这个命令一定要注意使用前提和不要每次循环访问同样的可变的变量。