第一篇:matlab心得体会
Matlab是一个基于矩阵运算的软件
1.helpwin只是寻找函数类,一般不如用doc(相当于帮助文档中的搜索),但在用doc搜索不到帮助文件时可用helpwin,如找有关的帮助等;打开格式非标准的mat或xls等数据文件如dat文件或无后缀名的文件时,不要用打开方式打开,而应先打开应用程序如MATLAB或excel,然后在应用程序中打开数据文件,这样能得到正确的行数和列数;lookfor可对M文件的第一行进行关键字搜索,比help条件宽松;MATLAB大小写有区分。用which搜索路径;要打开matlab自带的m文件直接用open即可,不需要找到路径,会在当前目录和set path的路径中搜索。2 矩阵的运算注意:标量与矩阵进行四则运算时该标量与矩阵的每个元素进行运算;两矩阵相乘左矩阵列数须等于右矩阵行数;矩阵除法有左除(反斜杠)和右除/(斜杠),AB=inv(A)*B,A/B=A*inv(B);方阵的乘方运算有四种:A^n,A^p,s^A,s.^A,其中A为方阵,n为整数,p为非整数,s为标量;A’表示矩阵A的转置,一般选中了Hermitian(共轭)复选框则元素带共轭;funm(A,’fun’)表示矩阵的函数运算,要求A是方阵,fun为矩阵运算函数名;给矩阵赋值时维数必须匹配,用方括号,一个分号为一行。
3.数组的运算注意:数组乘法运算符为.*,表示两数组中对应元素相乘;数组的除法运算符为.和./,表示对应元素相除;数组与数组运算时,参与运算的数组必须同维,结果为数组中每个元素进行运算所得;直接用结构名赋值即省略了(1);varargout返回输出变量list即一系列变量名称;feval(@fun,var1,„)用var1,„试算[evaluate]fun的值;读二进制文件常用fopen()和fread()组合,matlab读fortran写出的二进制文件时往往要在fopen()中加'b';读文本文件常用textread()和fopen();fscanf()组合,要注意格式,最好读完后对照打开看看。4.标准差std(x,flag,dim)默认flag=0,dim=1计算公式为 的平方根,flag=1时分母为n;可通过h=figure(i),后用get(h)获得图形对象所有属性的当前值,其格式为:属性名=属性值;结构数组可在域名后加(a,b)再加.变量名,调用时输变量名可使用tab完成;利用struct函数一次输入多个结构元素时注意用单元数组,用{}而非[]。
5. 左除和右除的两边不一定是方阵,当A为m*n矩阵,B为列向量时,AB表示A*X=B在最小平方意义上的解,需对A进行QR分解,m
8. 低级文件I/O函数很重要,因为它可读写二进制文件,便于与FORTRAN结合;读写之前先用fopen(filename,mode),注意都要加单引号,返回值如ans=0表示操作成功,-1表示不成功;一定要注意r和w因为w会删除原文件所有内容;读用fread(fid,count,precision,skip)其中precision如'uint8=>char'读取文本文件,注意在fclose(fid)之前是连续读的,不指定precision默认按字节读取可能会出现很多元素为0;fwrite(fid,A,precision,skip)用二进制格式写入文件,skip参数对于将数据插入到已知长度的记录中非常有用;重设文件指针位置用fseek(fid,offset,origin)表示在fid指定的文件上按照origin给出的参照点,相对移动offset个字节,注意如果指针不在开头要重置到开头origin应选'cof'当前位置而不选'bof'文件开始,重置完后可用ftell(fid)知道指针当前位置相对于bof的字节数,还可用ferror(fid)查询错误信息;还可用frewind(fid)函数将文件位置指针返回到文件起始位置;从文本文件读字符串行用fgets(fid,nchar)表示读一行文本并带有行结束符,每次读nchar个字符直到遇上结束符。9.如果运行的M文件有错误,而且在命令窗口又要运行M文件中定义错误的内置函数时可能会出现错误,这时应改工作目录;有些内置函数可在命令窗口运行但在M文件中运行可能会出现错误,如sphere(n);脚本M文件与命令窗口公用变量工作区,而函数M文件有单独的变量工作区,切实注意了;关系操作表达式返回的是逻辑型值即0和1。
10.数组维数扩展时下标不要用1,因这是默认下标用1后结果是重新赋值;不同数组类型转换如cell2struct等之前一定要先看数组尺寸size(array);变量名切记不要用函数名,否则调用函数时会出错还不知错在哪,因MATLAB优先使用变量名而非函数名,比如定义了变量max再调用max()函数时就会报错Subscript indices must either be real positive integers or logicals;中括号加引号用于多个文件名可以,用于多个变量名不行;简单统计量比如最大值,最小值,平均值加减后再统计和统计后再加减结果一样;函数不管用或者出错应检查是否不小心加了等号。
11.设置坐标轴刻度和属性时用set(gca,'xtick',数值数组);set(gca,'xticklabel',字符串数组);切记是label不要写成lable;用box off可以去掉右边和上边的刻度和边框;把右边和上边分别作为y和x轴可以加画图形,但最好不用plot而用line;有关坐标轴设置的例子可见我的程序plotNino.m;要实现坐标轴隔点标注数值且所有点间隔线均保留需设置两次坐标轴,第一次显示所有间隔线第二次用ax2=axes()后隔点标注;放大工具只对ax2有效;标注时字符矢量用{}且非数字字符必须加引号;注意annotation()中[x y w h]的x,y是对整个figure而言;标记单个数据点用scatter()即可。
12.MatLab小波分析工具箱中一些学习心得:进行多分辨率分析时,wavedec()得到的小波系数是由最后一层的低频系数和各层的高频系数首尾相连而成,不是相加;用wrcoef()可重构各单支系数的对应信号且saN+sdN+sdN-1+„+sd1近似等于原始信号s;用waverec()一次重构的结果和单支重构的和稍有差别但差别很小如e-15;用wavedec()时注意有些小波函数不能用如Morlet小波基等,具体可看wfilters();小波分解再重构后与原始信号相差最小的小波函数为db1即Haar小波基;
13.只有函数式M文件才能定义函数,脚本文件和函数不能写入同一个m文件中,即脚本文件中不允许出现function()语句但可以调用同目录下函数文件中的函数;函数文件要想保留一些中间变量的值就要在函数外部调用因为函数调用结束时会销毁临时变量空间,需另写脚本文件,要不然就将需要导出的变量作为返回的参数或者用global申明全局变量;要使函数文件中的函数易被其他脚本文件调用,文件名最好为第一函数名;一张图中画多张子图时注意subplot(‘Position’,[ ])和axes(‘OuterPosition’,[ ])在[]中值一样时子图的位置大小不一样,axes的[]所给区域按比例缩小包含坐标轴标题等故值易确定但调用时要加(..,’Parent’,*),此外subplot()可有系统给定区域;
1.help:最有效的命令(参阅了瀚海mathtools的 starrynight网友的文章)其实,可以这样说吧,如果离开matlab软件,我想我自己是基本上什么都不会。一遇 到什么问题,通常 我的第一反应是:help,就先说说自己对help的一些常用方法吧。1)命令窗口直接敲“help”,你就可以得到本地机器上matlab的基本的帮助信息。2)对于某些不是很明确的命令,只知道大体所属范围,譬如说某个工具箱,直接在 命令窗口中敲入 help toolboxname,一帮可以得到本工具箱有关的信息:版本号,函数名等。3)知道函数名,直接用help funname就可以得到相应的帮助信息。
2.see also:不可小瞧的关联
在用help命令的时候,可能因为我们开始估计的方向不一定完全正确,在列出的帮 助信息中没有直接 给出的我们要找的东西,但是我们一定不要忽略了在帮助的最后列出的see also。譬如:曾经遇到一个画椭球的问题。刚开始我以为这个命令函数应该在graph3d中给 出的(顺带提一句,只用help的时候我们就可以看到matlabgraph3dGenerate ellipsoid。
3.lookfor: matlab中的google 当我们很多什么头绪都没有的时候,我们可以求助于它,往往会收到意想不到的效果。譬如:曾经在gui编程的时候,遇到过这样一个问题:想拖动鼠标时,要出现一个方 框,就像你在桌面 上拖动鼠标,会出现虚线框一样。当初我也刚开始一定都不知道该查找什么东西,后来 想起用它了。于是乎,>> lookfor Rectangle(很不好意思,当时这个矩形我还是在金山词霸中搞定的-_-)。果然,在其中就找到 这样一条信息:GETRECT Select rectangle with mouse.^_^
4.get,set: GUI object 属性的帮手
在GUI编程中,我们可能有时候想改变某些object的属性,或者想让它安装自己的 想法实现,但是我们又不 记得这些object的属性,更别提怎么设置他们的值了。这时,可以用 get(handles)得 到此对象的所有的属性 及其当前值。用set(handles)可以得到对象所有可以设置的属性及其可能的取值。找 到我们需要的属性名字和 可能的取值之后,就意义用 get(handles,‘propertyname’)取得此属性的值,用set(handles,‘propertyname’,values)设置此对象此属性的值。
5.Edit: 查看m源文件的助手
在应用matlab过程中,可能我们想看看它的m源文件,当然用editor定位打开也行,但是我经常采用的式直接 在command窗口中用edit funname.m,就省去了定位的麻烦。
6.其他常用命令:which,what等
which:定位指定的函数和文件,最好带上参数-all,以便显示更加多的信息 what: 获得指定目录的m文件,mex文件以及mat文件名列表。
第二篇:Matlab心得体会
Matlab心得体会
10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。
它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大二,有一次老师讲课时用到协方差。无可避免的我笑了,因为协方差是我们下节课概率论数理统计老师要讲的内容。大一的时候还不觉得,但是大二,越是学习以后的内容越是感觉到时间不够用。或许时间是够用的,但是无法放弃那些占用自己时间表的无用项目。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。
自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。
今年选择金融matlab一方面出于希望能够提前修完大三时期的课程,能够空出更多的时间去考研或者为就业做准备。另一个考虑就是希望明年能够参加数学建模大赛,今年种种纠结放弃了,觉得万分可惜。明年也就是大三下学期的话我就会再来一次,而且还会更加坚定些。那么学习matlab的话对明年的计划也是有帮助的。在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。老师在讲解的过程中是通过一个个具体的金融例子来讲解的,而不是就matlab这个具体的软件工具进行讲解。这个给我带来相当大的打击,因为我发现我不仅仅是工具不能够熟练,涉及到的专业知识也是一知半解。这更加坚定了我要好好学习专业知识的决心,大学四年有几个人是希望荒度过去的呢?可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。
从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。
总结一下,学习任何一门语言:态度决定一切。不论是英语还是计算机语言。其实以前上高中的时候接触过这种编程语言,当时记得最头疼的就是循环语句,但是在matlab中这种东西用的就比较少了。语言语句都是很简洁利落的,都是一枪瞄死靶心的那种,很直接,这也让我减轻不少心理负担。
其实学习这种事,与其说学习什么具体的东西,更不如说是学习一种态度,从种种波折中认识到自己的局限性,不足。心情会沮丧,也会豁然开朗。光想不练假把式,不论想的再多,不实际运用还是没有用的。书山有路勤为径,学海无涯苦作舟。华山再高,顶有过路。这就是我今年学习金融matlab的心得体会。
第三篇:Matlab心得体会
Matlab心得体会
10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。
它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大二,有一次老师讲课时用到协方差。无可避免的我笑了,因为协方差是我们下节课概率论数理统计老师要讲的内容。大一的时候还不觉得,但是大二,越是学习以后的内容越是感觉到时间不够用。或许时间是够用的,但是无法放弃那些占用自己时间表的无用项目。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。
自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。
今年选择金融matlab一方面出于希望能够提前修完大三时期的课程,能够空出更多的时间去考研或者为就业做准备。另一个考虑就是希望明年能够参加数学建模大赛,今年种种纠结放弃了,觉得万分可惜。明年也就是大三下学期的话我就会再来一次,而且还会更加坚定些。那么学习matlab的话对明年的计划也是有帮助的。在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。老师在讲解的过程中是通过一个个具体的金融例子来讲解的,而不是就matlab这个具体的软件工具进行讲解。这个给我带来相当大的打击,因为我发现我不仅仅是工具不能够熟练,涉及到的专业知识也是一知半解。这更加坚定了我要好好学习专业知识的决心,大学四年有几个人是希望荒度过去的呢?可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。
从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。
总结一下,学习任何一门语言:态度决定一切。不论是英语还是计算机语言。其实以前上高中的时候接触过这种编程语言,当时记得最头疼的就是循环语句,但是在matlab中这种东西用的就比较少了。语言语句都是很简洁利落的,都是一枪瞄死靶心的那种,很直接,这也让我减轻不少心理负担。
其实学习这种事,与其说学习什么具体的东西,更不如说是学习一种态度,从种种波折中认识到自己的局限性,不足。心情会沮丧,也会豁然开朗。光想不练假把式,不论想的再多,不实际运用还是没有用的。书山有路勤为径,学海无涯苦作舟。华山再高,顶有过路。这就是我今年学习金融matlab的心得体会。
第四篇:matlab心得体会
MATLAB学习心得体会
Matlab,提起它,不管我们上课是否认真听讲了,我们都应该对它不再陌生,我们不可否认它的强大之处,正如一节课时老师给我们说的“Matlab可以做很多事情”。通过近一段的学习,使我更加确信,它是一款集数据分析、矩阵运算、信号处理和图形显示于一体,可方便地应用于数学计算、算法开发、数据采集、系统建模和仿真、数据分析和可视化、科学和工程绘图、应用软件开发等方面的强悍软件,是研究人员、工程人员研究工作中 不可多得的工具。
正因为其强大之处,以及可视性及可交互性使我对它的学习产生了浓厚的兴趣。开学至今,短短十次课,我们学习了Matlab矩阵及其运算、Matlab程序设计、M文件操作、M文件调试、M文件高级编程以及Matlab绘图等„„不敢保证每节课都认真听讲,但都尽力去听,一段时间下来,对Matlab还是有了一定的框架性认识 及编程能力。但对于Matlab这样的软件来说,套用曾经一个老师
说的话“我给你们讲的都是皮毛,你们学到的更是皮毛中的皮毛”,虽然有点搞笑,但却是不争的事实,学习软件类的东西,最好的办法就是激发兴趣和多加练习。我想当老师在课堂上给我们演示如何用Matlab编程解决一些实际问题以及编程出现一些绚丽丰富的图形时,我们无不惊叹其美丽,我想凭这一点激发起同学们的兴趣是没有问题的,但问题是同学们为什么还说它难学呢?关键还是在于同学们下课后缺乏锻炼,加之每次课间隔时间较长,仅凭上课时记得的东西,是很难连贯及熟练运用的。
关于如何才能够更好地学习好Matlab,通过下面同学们之间的交流,综合同学及个人意见,提出以下几点建议(纯属个人观点,如有不妥,还请见谅):
1、针对学习资料:
希望邮箱中上传PPT文件标清章节号,一来方便有兴趣及精力的同学提前学习,二来方便同学下来后及时按照章节复习。(注:尤其是对初学者由易到难的过程中显得尤为重要)
2、针对上课学习
对于软件类的学习存在这样一个问题,那就是同学们上课挺感兴趣得听讲,听到入迷时恨不得立刻就找一台电脑试一试,但下课后可能去忙其他事情,不一会儿,这一份热情就消退了,也不会再去练习。针对此,考虑到目前大多数同学都有电脑的情况下,我们是否可以让同学们上课时带电脑到课堂上,一方面老师在讲台上演示,另一方面同学们在下面即时练习,这样也许会收到更好地教学效果。
3、针对课下学习
本学期Matlab学习,老师给的课下作业很少,也许老师考虑同学们比较忙,以及可能交上来的作业效果质量达不到预期效果。但我认为适量的课下作业还是非常有必要的,尤其是对于目前大学生普遍自制力较差的情况,这点显得更加有意义。针对如何布置课下作业以及布置什么作业,根据自身学习经验认为这样比较好:课下作业可以布置那些上课老师演示过的程序或PPT中程序略加改动,让同学们下课后及时完成上交。这不仅使同学们及时复习课上学习内容,也不至于使那些学习效果不佳的同学认为作业太难而直接放弃做去copy别人的。
以上即为近期学习Matlab的一些心得体会,限于学习的程度及能力有限,上文难免有认识肤浅之处,恳请批评指正。
第五篇:matlab心得体会
心得体会
虽然说本次matlab实训只有短短的一个礼拜,但在老师的耐心教导以及自身的努力下,还是获益匪浅。本次matlab实训是以信号与系统知识为实例来编写程序的,由于信号与系统正是本学期的课程,所以在理论知识上也比较容易理解,在加上老师耐心讲解,使我们的信号与系统知识也得到了巩固,可谓是一举两得。
在大一学年时,虽然已学过一学期的matlab知识,但是由于时间隔得有点久了,所以很多知识也有所遗忘了,通过本次实训,我们又重新学习巩固了所学知识,在很多matlab的应用上也有了新的体验。比如如何运用符号运算、向量表示法和计算卷积、系统的各种响应等。
Matlab这门课也算是门技术活,要想学好这门课就必须多练习,正所谓熟能生巧,练习多了就熟练了,也就能掌握好并且更好的运用这门课了,我们以前所学的知识之所以能遗忘得这么快,完全是因为我们掌握得不牢固。Matlab是一门很实用的课程,不管是信号与系统还是将来要学的数字信号处理等多门课都可以用matlab来实现,所以掌握好matlab为我们以后的学习和工作打下基础。
通过matlab的实训,同时也是对我们细心和耐心的锻炼。Matlab的编程需要很细心,一个标点符号的错误或者字符的大小写都将导致程序报错,所以这就有利于培养我们的细心。Matlab编程需要长时间的坐在电脑前工作,这就有利于培养我们的耐心,一旦坐在电脑前开始工作,常常会有一种时间过得特别的快的感觉。总之,本次matlab专题训练让我收获很多。