matla操作技巧总结.doc_第1页
matla操作技巧总结.doc_第2页
matla操作技巧总结.doc_第3页
matla操作技巧总结.doc_第4页
matla操作技巧总结.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大家好,以下是操作Matlab中获得的一下操作技巧,和大家一起分享,部分内容是从网络上整理到的内容1. figure命令新建一个绘图窗口figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象。所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到)。figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure。matlab中快捷键命令组合的使用技巧如下:2. Ctrl+C 中断正在执行的操作如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。MATLAB这时可能正疲于应付,响应会有些滞后。4. doc 命令名,打开命令的帮助文档与help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。5. clc 清屏清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。6. clear 和clear allclear 变量名:可以清除workspace中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。clear all 清除所有的变量,使workspace一无所有,当重新开始一次算法验证时,最好执行一次,让workspace中的变量一目了然。7. close all如果开了多个绘图窗口,用这个命令将它们一起关掉。8. 上下光标键在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。如果输入命令的前几个字母如 row, col =,再使用光标键,则只会选择以这些字母开始的命令。9. Tab补全对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。10. cell模式在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(% )开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。3. 注释掉一段程序:%、%。经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和 的组合。输入%后,后面的代码都会变绿,在注释结束的地方再加上 % 。也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R。将光标放在需要注释的行中,按Ctrl+R,将该行变为注释。取消注释也是一样的,快捷键为Ctrl+T。11. 获取文件列表,批处理MATLAB内置了一些文件操作命令,例如cd(切换工作目录),dir(同ls,显示目录内文件列表)等。dir命令可以返回目录中的文件和文件夹列表,存在一个结构体数组中。如果需要对一些数据文件进行批处理,而文件名又没有一定的规律,你可能需要借助于这个命令。12. 对输出图像的修改 如果需要对输出图像进行标注、坐标、颜色、线条等修改,可以在输出图像界面上,点击edit下current object properties,然后可以图像各属性进行修改。13. Ctrl+D打开子程序 在MATLAB的Editor中,将输入光标放到一个子程序名称中间,然后按Ctrl+D可以打开该子函数的m文件。当然这个子程序要在路径列表中(或在当前工作路径中)。实际上该快捷键对应右键菜单中“Open Selection”命令。14. 列出依赖函数 在Editor菜单中,选择Tools-Show Dependency Report,可以列出当前m文件调用的子程序。如果需要将程序移动到别的电脑上,使用这个工具可以确保不会漏掉一些东西。这个工具也适用于文件夹。15.显示鼠标数据内容 调试程序过程中,程序运行到断点后,将鼠标移到一个变量名上,将会弹出一个方框,显示该变量的内容。不在调试状态下,怎么使用这个功能呢?在File菜单中打开设置选项(Preferences),选择 Editor/Debugger - Display,在 General Display Options 中选择 Enable datatips in Edit Mode 。16.单元数组的基本操作清除cell中的元素cellname(n1:n2) = ;合并如下的两个cell数组a = str1, str2, str3;b = 1:3; c = a(1:2), b, a(3);得到:c = str1 str2 1x3 double str3 而 c = a(1:2), b, a(3)则得到 c = 1x2 cell 1x3 double 1x1 cellcell array本质上是数组,前一种操作方式与普通数组的操作方式相同,而后一种方式则是将逗号分隔的各个元素分别一个cell,整体作为一个cell数组。cell的两种引用方式a(1) 得到 str1, 因为a是一个cell数组,所以其中的每一个元素都是一个cell,而a1 得到 str1。17.MATLAB 中的字体平滑 在File菜单中打开设置选项(Preferences),在 Fonts 中,选择底部的 “Using antialiasing to smooth desktop fonts” ,MATLAB 中默认字号比较小,可以调大一些(可以在下拉菜单中输入数字,更精细地控制文字大小)。有衬线字体打开反锯齿后可能会看起来“发虚”。18.同步缩放坐标轴linkaxeslinkaxes命令,可以将一个figure中的各个axes指定相同的坐标范围,实现各个绘图同步放大、缩小。在缩放一个绘图时,其它也会同步缩放。可以同时关联x、y轴,也可以只关联一个坐标轴。19.鼠标绘图MATLAB Help中的Interactive Plotting一文提供了一种在figure中用鼠标绘图的方法,主要使用ginput函数。20.GUI程序关闭按钮的callback 为GUI窗口右上角的关闭按钮添加回调函数:在GUIDE中打开GUI,在没有控件的地方单击,选中整个figure,右键菜单中选择 View Callbacks - CloseRequestFcn,m文件中将自动添加该回调函数,输入代码就可以了。matlab 快捷键常用的快捷键(用【】表示)或命令:1) 【Tab】键(转自版友心灯)在/email看到的:在command窗口,输入一个命令的前几个字符,然后按tab键,会弹出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成。目前讨论结果是:matlab6.5版本中,如果候选命令超过100个,则不显示。而在matlab7以后版本中,则没有这个限制,均可正常提示2) 【Ctrl+C】(或【CtrlBreak】)(转自版友yangjin_ren)在matlab程序运行过程中,可能由于程序编写的失误,导致程序不停的运行,在命令窗口输入“Ctrl+C”可以将运行的程序停下来,而不需要将整个Matlab程序关掉。不过进行此操作的前提是能够激活切换到命令窗口才行,呵呵3. 在命令窗口(Command Window)中:4) 【上、下键】切换到之前、之后的命令,可以重复按多次来达到你想要的命令2) clc清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉5) clear这个才是清空当前工作区的变量命令,常用语句clear all来完 2. 在编辑器(Editor)中:1)【Tab】(或【Ctrl+】)增加缩进(对多行有效)2)【Ctrl+】减少缩进(对多行有效)3)【Ctrl+I】自动缩进(即自动排版,对多行有效)4)【Ctrl+R】注释(对多行有效)5) 【Ctrl+T】去掉注释(对多行有效)6) 【Ctrl+B】括号配对检查(对版本6.5有效,但版本7.0无效,不知道是取消了还是换了另外的快捷键,请大牛们指点,其他版本没有测试过)7) 【F12】设置或取消断点8) 【F5】运行程序初学者要把下面的基本使用规则,牢记于心1. 输入时,标点必须是英文状态下的 示复数,比如2+3i时可以省略12.除号/或/,它两个的关系是:a除以b表示为a/b,或b/a13.等号=用于赋值14.双等号=表示数学意义上的等号15.主窗口里面,输入时,换行用Shift+Enter16.主窗口里面,运行程序,执行命令用Enter17.矩阵中用圆括号表示下标,单元数组用大括号表示下标18.对变量名的基本要求:区分大小写,不超过63个字符,以字母开头,只能是字母,数字和下划线19.clc即clear command(清屏),clf即clear figure(清理图形窗口)clear 清理内存所有变量,clear+变量名 清理内存指定变量edit+函数名 查看或编辑源文件who 显示当前变量名列表whos 显示变量详细列表which+函数名 证实该函数是否在当前路径what 列出当前路径的所有matlab文件load 加载外部文件save 保存文件到外部20.matlab的帮助函数:helphelp+函数名或help+函数类名 精确查询helpwin 打开帮助窗口helpwin+函数名 精确查询helpdesk 打开帮助窗口doc 打开帮助窗口doc+函数名 打开帮助窗口, 精确查询 lookfor+关键字 这个是matlab中的谷歌,模糊查询21.有时候程序会陷入死循环,这时把操作切换到运行窗口,按Ctrl+C结束运行22.函数式M文件的文件名,在matlab主窗口下不区分大小写,函数式M文件中,变量都是局部变量脚本式M文件中,变量都是全局变量23.编辑器(Editor)中的几个有用的快捷键:Tab或Ctrl+ 增加缩进,对多行有效Ctrl+ 减少缩进,对多行有效Ctrl+I 自动缩进,对多行有效Ctrl+R 注释,对多行有效Ctrl+T 去掉注释,对多行有效Ctrl+B 括号配对检测,未配对会有红色波浪线标出F12 设置或取消断点F5 运行程序24.主窗口中,几个有用的快捷键:在命令提示符后,可以用键盘上的上箭头和下箭头调用历史命令行Esc 清楚当前输入行Ctrl+左箭头,光标左移一个单词Ctrl+右箭头,光标右移一个单词Del 删除光标后一个字符Alt+Backspace 恢复上次删除(二)matlab中快捷键命令组合的使用技巧如下matlab中快捷键命令组合的使用技巧如下:1. Ctrl+C 中断正在执行的操作如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。MATLAB这时可能正疲于应付,响应会有些滞后。2. figure命令新建一个绘图窗口figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象。所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到)。figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure。4. doc 命令名,打开命令的帮助文档与help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。5. clc 清屏清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。6. clear 和clear allclear 变量名:可以清除workspace中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。clear all 清除所有的变量,使workspace一无所有,当重新开始一次算法验证时,最好执行一次,让workspace中的变量一目了然。3. 注释掉一段程序:%、%。经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和 的组合。输入%后,后面的代码都会变绿,在注释结束的地方再加上 % 。也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R。将光标放在需要注释的行中,按Ctrl+R,将该行变为注释。取消注释也是一样的,快捷键为Ctrl+T。7. close all如果开了多个绘图窗口,用这个命令将它们一起关掉。8. 上下光标键在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。如果输入命令的前几个字母如 row, col =,再使用光标键,则只会选择以这些字母开始的命令。9. Tab补全对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。10. cell模式在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(% )开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。11. 获取文件列表,批处理MATLAB内置了一些文件操作命令,例如cd(切换工作目录),dir(同ls,显示目录内文件列表)等。dir命令可以返回目录中的文件和文件夹列表,存在一个结构体数组中。如果需要对一些数据文件进行批处理,而文件名又没有一定的规律,你可能需要借助于这个命令。12. 对输出图像的修改 如果需要对输出图像进行标注、坐标、颜色、线条等修改,可以在输出图像界面上,点击edit下current object properties,然后可以图像各属性进行修改。13. Ctrl+D打开子程序 在MATLAB的Editor中,将输入光标放到一个子程序名称中间,然后按Ctrl+D可以打开该子函数的m文件。当然这个子程序要在路径列表中(或在当前工作路径中)。实际上该快捷键对应右键菜单中“Open Selection”命令。14. 列出依赖函数 在Editor菜单中,选择Tools-Show Dependency Report,可以列出当前m文件调用的子程序。如果需要将程序移动到别的电脑上,使用这个工具可以确保不会漏掉一些东西。这个工具也适用于文件夹。15.显示鼠标数据内容 调试程序过程中,程序运行到断点后,将鼠标移到一个变量名上,将会弹出一个方框,显示该变量的内容。不在调试状态下,怎么使用这个功能呢?在File菜单中打开设置选项(Preferences),选择 Editor/Debugger - Display,在 General Display Options 中选择 Enable datatips in Edit Mode 。16.单元数组的基本操作清除cell中的元素 cellname(n1:n2) = ; 合并如下的两个cell数组 a = str1, str2, str3;b = 1:3; c = a(1:2), b, a(3);得到:c = str1 str2 1x3 double str3 而 c = a(1:2), b, a(3)则得到 c = 1x2 cell 1x3 double 1x1 cell cell array本质上是数组,前一种操作方式与普通数组的操作方式相同,而后一种方式则是将逗号分隔的各个元素分别一个cell,整体作为一个cell数组。cell的两种引用方式a(1) 得到 str1, 因为a是一个cell数组,所以其中的每一个元素都是一个cell,而a1 得到 str1。17.MATLAB 中的字体平滑 在File菜单中打开设置选项(Preferences),在 Fonts 中,选择底部的 “Using antialiasing to smooth desktop fonts” ,MATLAB 中默认字号比较小,可以调大一些(可以在下拉菜单中输入数字,更精细地控制文字大小)。有衬线字体打开反锯齿后可能会看起来“发虚”。 (二)用MATLAB求定积分一、符号积分符号积分由函数int来实现。该函数的一般调用格式为:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分;int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分;int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间a,b上的定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间a,b上可积时,函数返回一个定积分结果。当a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。例:求函数x2+y2+z2的三重积分。内积分上下限都是函数,对z积分下限是sqrt(x*y),积分上限是x2*y;对y积分下限是sqrt(x),积分上限是x2;对x的积分下限1,上限是2,求解如下:syms x y z %定义符号变量F2=int(int(int(x2+y2+z2,z,sqrt(x*y),x2*y),y,sqrt(x),x2),x,1,2) %注意定积分的书写格式F2 =1610027357/6563700-6072064/348075*2(1/2)+14912/4641*2(1/4)+64/225*2(3/4) %给出有理数解VF2=vpa(F2) %给出默认精度的数值解VF2 =224.92153573331143159790710032805二、数值积分1.数值积分的实现方法基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为:I,n=quad(fname,a,b,tol,trace)基于变步长、牛顿柯特斯(Newton-Cotes)法,MATLAB给出了quadl函数来求定积分。该函数的调用格式为:I,n=quadl(fname,a,b,tol,trace)其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。2.数值积分基本原理求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson) 法、牛顿柯特斯(Newton-Cotes)法等都是经常采用的方法。它们的基本思想都是将整个积分区间a,b分成n个子区间xi,xi+1,i=1,2,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。例:求函数exp(-x*x)的定积分,积分下限为0,积分上限为1。fun=inline(exp(-x.*x),x); %用内联函数定义被积函数fnameIsim=quad(fun,0,1) %辛普生法Isim = 0.746824180726425IL=quadl(fun,0,1) %牛顿柯特斯法IL =0.746824133988447三、梯形法求向量积分format long gx=0:0.001:1; %x向量,也可以是不等间距y=exp(-x.2); %y向量,也可以不是由已知函数生成的向量S=trapz(x,y); %求向量积分S = 0.746824071499185 或:trapz(x,y)梯形法沿列方向求函数Y关于自变量X的积分(向量形式,数值方法)。d=0.001;x=0:d:1;S=d*trapz(exp(-x.2)S= 0.7468(二)matlab中对矩阵排序的问题sort(A)若A是向量不管是列还是行向量,默认都是对A进行升序排列。sort(A)是默认的升序,而sort(A,descend)是降序排序。sort(A)若A是矩阵,默认对A的各列进行升序排列sort(A,dim)dim=1时等效sort(A)dim=2时表示对A中的各行元素升序排列看下面的例子 A=magic(3)A =8 1 63 5 74 9 2 sort(A)ans =3 1 24 5 68 9 7 sort(A,1)ans =3 1 24 5 68 9 7 sort(A,2)ans =1 6 83 5 72 4 9=在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如果排序后还需要保留原来的索引可以用返回值,即B,ind=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A中项的索引。排序是安升序进行的。Matlab中给一维向量排序是使用sort函数:sort(A),排序是按升序进行的,其中A为待排序的向量;若欲保留排列前的索引,则可用 sA,index = sort(A) ,排序后,sA是排序好的向量,index 是 向量sA 中对 A 的索引。 索引使排列逆运算成为可能。事实上,这里A sA(index) , A恒等于sA(index),这个结论确实很奇妙,而且很有用。不信你排序之后试下键入命令sA(index) ,看看得到的是不是就是排列前的A呢。=在Matlab中,访问矩阵中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。降序排列不需要这么麻烦,只需要这样就可以了sort(A,descend)由于在sort函数的结果中,是安升序排序的,要转换成降序,先用Xeye(n)生成一个n维的单位阵,然后用Xrot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:X=eye(size(A);X=rot90(X);A=A*X;假如a是一个2*n的矩阵,即两行. b=a(1,:);c,pos=sort(b);%pos为排序后的下标,c为第一行的排序结果;a(2,:)=a(2,pos);%第二行按照第一行排序的下标对应a(1,:)=c;%第一行结果重新赋给a 的第一行以下适用于m*n的矩阵按第一行排序 Y有此之后,上面对2*n的叙述有画蛇足之感 b, pos = sort( a( 1, : ) );a = a( :, pos );=matlab按某一列排序,其他列不变办法b=sortrows(a,2) %a 为要排序的矩阵。2表示按第几列进行排序,整数代表升序,负数代表降序。%将矩阵a按照第2列的升序排列,其他列不会作升序排列,而是将跟随着第2列 的变化,保持一一对应。b=sortrows(a,-3)%将矩阵a按照第3列的降序排列,其他列将跟随着第3列 的变化,保持一一对应。data = 1 3 2 7 6 5 4 9 8sortrows(data,1)ans = 1 3 2 4 9 8 7 6 5sortrows(data,-1)ans = 7 6 5 4 9 8 1 32(三)对数据毛刺的处理假如data参数第一列数据画图时有许多毛刺,可通过下面的命令进行修正data(:,1)=smooth(data(:,1),50)具体实例t=linspace(0,2*pi,500);%产

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论