学习matlab心得体会

上传人:郭** 文档编号:111602984 上传时间:2019-11-02 格式:DOC 页数:13 大小:108.14KB
返回 下载 相关 举报
学习matlab心得体会_第1页
第1页 / 共13页
学习matlab心得体会_第2页
第2页 / 共13页
学习matlab心得体会_第3页
第3页 / 共13页
学习matlab心得体会_第4页
第4页 / 共13页
学习matlab心得体会_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《学习matlab心得体会》由会员分享,可在线阅读,更多相关《学习matlab心得体会(13页珍藏版)》请在金锄头文库上搜索。

1、学习matlab心得体会 学习matlab心得体会篇一: 最近在学习matlab一直不入其法门从网上看到了一些大虾的经验心得感触颇深转贴过来希望给初学者有一定的指引 一)写给学习matlab的新手们 本人接触matlab已经有5年多的时间了一直想写点东西但是之前不知道放在里才能发挥它的最大作用直到几天前碰上了这个论坛(有点像诸葛亮遇见姜维哈哈) 废话不说我想借贵论坛宝地写一些经验给使用matlab的新手们当然了老大们也可以看看不嫌弃我写得粗糙的话还可以指点一下先谢过了 首先我想说的是matlab跟其他语言不一样(我用的比较多的编程语言除了matlab就应该是c或c了VB和Delphi也接触过我

2、想版面(matlab版)大部分人也差不多)如果你抱着“把其他语言的思想运用在matlab里面”的话那么我想即使程序运行不出错也很难把握matlab的精髓也就很难发挥matlab的作用了所以如果你是希望matlab作为VC的附属品即你不想在matlab上面花太多功夫只纯粹想用matlab来完成VC做不了或很难做成的任务的话那么这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具使它更有效为你服务的话那么希望本文对你有所帮助 Matlab是一个基于矩阵运算的软件这恐怕是众所周知的事情了但是真正在运用的时候(就是在编程的时候)许多人(特别是初学者)往往没有注意到这个问题因此for循环(

3、包括while循环)满天飞.这不仅是暴殄天物(没有发挥matlab所长)还浪费了你宝贵的时间对此版友MVH在他的“MATLAB小技巧”一文中也有所涉及雷同的东西我也就不重复了matlab的“帮助”里面也有相关的指示我这里想说的一点是初学者往往在初始化矩阵的时候注意到这个问题懂得了使用矩阵而不是循环来赋值但是在其他环节上就很容易疏忽或者说仍然没有摆脱C的思想举个例子吧下面的代码是我的一个师弟写的我想他接触matlab也有2、3年时间了(在此说明一下接触2、3年并不是表示每天都会跟matlab打交道我本人也不是只是在一年某几个时间段里面连续使用)但是仍然会出现类似的问题: J=0; lt=size

4、(imf1,2); for(i=1:lt) if(abs(imf1(i)1) J=1; break end end 上面的代码实现了一个目的检查信号imf1(一个向量)是否存在绝对值大于1的点这显然是基于C的思想写出来的如果在matlab下面其实用两个语句就足够了(当然可以合并为一个):q=find(imf11); J=isempty(q); 这样的修改带来的好处是很可观的 又如: forj=1:num imf1(start1+j)=2*li1(j+1)imf1(start1+j); end 这是一个对称翻折的问题它完全可以用以下这个语句简洁表示: imf1(start1+1:start1+n

5、um)=2*li1(2:num+1)imf1(start1+1:start1+num); 因此如果是新手可以先用循环(基于C的思想)来编写代码然后看看能否用matlab的语言(基于矩阵的思想)来改进当然这样做的前提是你对matlab提供的一些函数比较熟悉才行这些函数在matlab的“帮助”那里搜索“FunctionsUsedinVectorizing”就可以找到一些其他的也可以找相关的书籍(没找到不可能电子版总可以下载到的) 对提高matlab编程能力的方法我想主要有以下三个: 1.查help 2.多上上论坛搜索帖子、发帖子问人 3.阅读别人、特别是牛人的程序 当然了正如所有的程序语言一样“3

6、分课本7分上机”一定要动手才行不能光看多想、多思考、多尝试才是正路 最后整理一下常用的快捷键(用【】表示)或命令: 1.在命令窗口(CommandWindow)中: 1)【上、下键】切换到之前、之后的命令可以重复按多次来达到你想要的命令 2)clc清除命令窗口显示的语句此命令并不清空当前工作区的变量仅仅是把屏幕上显示出来的语句清除掉 3)clear这个才是清空当前工作区的变量命令常用语句clearall来完成 4)【Tab】键(转自版友心灯)在 其余的例如在Debug状态下的快捷键就不多说了自己看菜单Debug吧 累了有时间再写吧希望大家多交流 Coming:(以下东西都是一年前做的了不知道能

7、否记起呵呵) 1)关于神经网络的调用matlab的nntool命令后的使用问题(我做的时候没有看过其他书籍或资料是自己闭门造车的结果如果写之前发现其他书籍有相关介绍的话就不写了) 2)关于外部接口的matlab与CBuilder的接口想详细介绍如何利用mat4.5在C+Builder中调用matlab的代码以及mat的一些技巧由于我不是搞项目开发的(搞科研、搞课题的)所以对VC不熟悉大学的时候学过一点不过我想对于搞科研来说CBuilder就足够了免去很多麻烦Builder在界面设计和数据库连接上面(我只接触过这两方面)还是做得不错的同样如果发现其他书籍上有类似的东西就不写了 3)GUI方面也写

8、写吧只是一点点心得或者体会呵呵这个相对简单些篇幅相对要少些 学习matlab心得体会篇二: Matlab是一个基于矩阵运算的软件 1helpwin只是寻找函数类一般不如用doc(相当于帮助文档中的搜索)但在用doc搜索不到帮助文件时可用helpwin如找有关的帮助等;打开格式非标准的mat或xls等数据文件如dat文件或无后缀名的文件时不要用打开方式打开而应先打开应用程序如MATLAB或excel然后在应用程序中打开数据文件这样能得到正确的行数和列数;lookfor可对M文件的第一行进行关键字搜索比help条件宽松;MATLAB大小写有区分用which搜索路径;要打开matlab自带的m文件直

9、接用open即可不需要找到路径会在当前目录和setpath的路径中搜索 2矩阵的运算注意:标量与矩阵进行四则运算时该标量与矩阵的每个元素进行运算;两矩阵相乘左矩阵列数须等于右矩阵行数;矩阵除法有左除(反斜杠)和右除/(斜杠)AB=inv(A)*B,A/B=A*inv(B);方阵的乘方运算有四种:An,Ap,sA,s.A,其中A为方阵n为整数p为非整数s为标量;A表示矩阵A的转置一般选中了Hermitian(共轭)复选框则元素带共轭;funm(A,fun)表示矩阵的函数运算要求A是方阵fun为矩阵运算函数名;给矩阵赋值时维数必须匹配用方括号一个分号为一行 3数组的运算注意:数组乘法运算符为.*表

10、示两数组中对应元素相乘;数组的除法运算符为.和./表示对应元素相除;数组与数组运算时参与运算的数组必须同维结果为数组中每个元素进行运算所得;直接用结构名赋值即省略了(1);varargout返回输出变量list即一系列变量名称;feval(fun,var1,?)用var1,?试算evaluatefun的值;读二进制文件常用fopen()和fread()组合matlab读fortran写出的二进制文件时往往要在fopen()中加b;读文本文件常用textread()和fopen();fscanf()组合要注意格式最好读完后对照打开看看 4标准差std(x,flag,dim)默认flag=0,di

11、m=1计算公式为的平方根flag=1时分母为n;可通过h=figure(i),后用get(h)获得图形对象所有属性的当前值其格式为:属性名属性值;结构数组可在域名后加(a,b)再加.变量名调用时输变量名可使用tab完成;利用struct函数一次输入多个结构元素时注意用单元数组用而非 5左除和右除的两边不一定是方阵当A为m*n矩阵,B为列向量时AB表示A*X=B在最小平方意义上的解需对A进行QR分解mn时解通过(A*A)(A*b)求得而A/B=(BA);积分可以查一下积分命令quad或者trapz 6注解块操作符%和%必须单独成行否则不起应有作用;struct()表示结构数组name1.name

12、2表示name1为结构数组;函数名切记不要与MATLAB内置函数重名否则会出现错误因为系统先从当前目录寻找匹配的函数;MATLAB可以把程序制作的动画生成avi格式的视频须把avifile(),getframe(),addframe(),close()配合起来使用 7启动notebook后word文档的菜单栏中没有出现Notebook菜单项可以依次单击工具自定义命令宏选择保存于mbook.dot上的宏TemplateProject.mwNewNotebook.MAIN(把他拖到菜单栏然后单击没必要)就会出现Notebook菜单项;计算区(CalcZone)不要弄evaluateMbook一般也

13、不要用;单元转换为文本可以常用 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参数对于将数据插入到已知长度

14、的记录中非常有用;重设文件指针位置用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等之前一定要先看

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 心得体会

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号