1、matlab常用操作备忘 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 18 个人收集整理 勿做商业用途 matlab常用操作备忘
2、******************************** matlab常用操作备忘 (1)管理命令和函数 addpath :添加目录到MATLAB搜索路径 doc :在Web浏览器上现实HTML文档 help :显示Matlab命令和M文件的在线帮助 helpwin helpdesk :help 兄弟几个 lookfor :在基于Matlab搜索路径的所有M文件中搜索关键字 partialpath:部分路径名 8*) path :所有关于路径名的处理 pathtool :一个不错的窗口路径处理界面 rmpath :删除搜
3、索路径中指定目录 type :显示指定文件的内容 ver :版本信息 version :版本号 web :打开web页 what :列出当前目录下所有的M文件 Mat文件和 Mex文件 whatsnew :显示readme文件 which :显示文件位置 (2)管理变量和工作区 clear :从内存中删除所有变量,clear x y z是删除某个变量 disp :显示文本或数组内容 length :数组长度(最长维数) load :重新载入变量(从磁盘上) mlock :锁定文件,防止
4、文件被错误删除 munlock :解锁文件 openvar :在数组编辑器中打开变量 pack :整理内存空间 save :保存变量到文件 8*) size :数组维数 who whos :列出内存变量 workspace :显示工作空间窗口 (3)管理命令控制窗口(command窗口) clc :清空命令窗口 echo :禁止或允许显示执行过程 format :设置输出显示格式 home :光标移动到命令窗口左上角 more :设置命令窗口页输出格式 (4)
5、文件和工作环境 cd :改变工作目录 copyfile :复制文件 delete :删除文件和图形对象 diary :把命令窗口的人机交互保存到文件 dir :显示目录 edit :编辑文本文件 fileparts :返回文件的各个部分 fullfile :使用指定部分建立文件全名 inmem :返回内存(伪代码区)的matlab函数名 ls :在unix系统中列出目录(win中亦可) matlabroot :根目录 mkdir :新建目录 open :
6、打开文件 pwd :显示当前目录 tempdir :返回系统临时目录的名字 tempname :随机给出一个临时字符串(可用作文件名) ! :直接调用操作系统command命令 (5)启动和推出matlab matlabrc :Matlab的启动M文件 exit quit :退出Matlab startup :运行matlab启动文件 (6)程序设计 builtin :从可重载方法中调用内置函数 :执行包含可执行表达式的字符串 c :计算并返回表达式的值
7、 in :执行某个工作空间中的包含表达式的字符串 f :执行函数(从函数名或函数句柄) function :函数头 global :定义全局变量 nargchk :检查输入参数数目 persistent :定义常量 script :作为脚本的M文件 (7)流程控制 break :停止执行循环 case :case语句,switch语句一部分 switch switch_expr case case_expr
8、 statments case otherwise end catch :try—catch语句一部分,捕捉程序 else :if条件语句一部分 elseif :if条件语句一部分 end :终止for、while、switch、try和if语句 error :显示错误信息 for :循环语句一(确定次数) if :if条件语句 other :switch语句一部分 return
9、返回到调用函数 switch :开关语句 try :try程序块 warning :类似于disp,但可被禁止 while :循环语句(次数不确定) (8)交互输入 input :交互输入 keyboard :在M文件中遇到keyboard时将在命令窗口 产生交互直到输入return命令 menu :为用户输入产生一个选择菜单 pause :暂停 (9)面向对象 class :创建一个对象或者返回一个对象类 double :转换为双精度 inf
10、eriorto :亚类关系 inline :创建一个内联函数 int8,int16,int32 :转换到符号整数 isa :检查是否为所给类的对象 loadobj :load函数用户定义扩展 saveobj :save函数用户定义扩展 single :转换为单精度 superiorto :超类关系 uint8,uint16,uint32: 转换到无符号整数 (10)调试命令 dbclear :断点清除 dbcont :重新开始执行 dbdown :改变当前工作空间 dbmex :调试Mex文件
11、 dbquit :退出调试模式 dbstack :显示函数调用堆栈 dbstatus :列出所有断点 dbstep :从断点处执行 dbstop :设置断点 dbtype :列出带行号的M文件内容 dbup :改变当前工作空间 lasterr :返回Matlab中产生的最后一个异常信息。 lastwarn :最后的警告信息这两个函数在调试程序时非常有用 8*) (11)gui命令 dialog :创建对话框 errordlg:创建错误对话框 helpdlg :创建帮助对话框 inputdlg:创建输入对话框 li
12、stdlg :创建选择列表对话框 msgbox :创建消息对话框 pagedlg :显示页面的版面对话框 printdlg:显示打印对话框 questdlg:问题对话框 uigetfile:文件检索对话框 uiputfile:为写入而显示的检索对话框 uisetcolor:从对话框交互式设置对象的ColorSpec uisetfont :交互设置对象字体特征 warndlg :警告对话框 menu :生成菜单 uicontextmenu:创建上下文菜单 uicontrol:创建用户界面控制对象 uimenu :创建用户界面菜单 dragrect :用
13、鼠标拖动矩形 gcbo :返回正在执行回叫信息的图形对象句柄 rbbox :创建橡皮框 textwrap :对给定的用户界面控制读写返回覆盖的字符串矩阵 uiwait :控制程序的执行 waitbar :显示等待条 waitforbuttonpress:等待键或按钮的触发 (12)矩阵分析 cond :条件数(关于逆) cond :条件数(关于特征值) det :行列式 norm :矩阵范数 null :零空间 orth :矩阵的正交化空间 rank :矩阵的秩 rcond :矩阵的逆条件数 rref :去相关
14、阶梯矩阵(高斯约当消去法) rrefmovie: 去相关阶梯矩阵的逐步演示 subspace:两个子空间的角度,几何上讲其实是镶嵌于一个空间中的两个 超平面的角度;物理上讲是第二次试验和第一次试验提供了多少 新信息 trace :矩阵的迹 (13)线性方程 chol :Cholesky分解 inv :矩阵求逆 lscov :最小二乘解 lu :LU分解 lsqnonneg:非负约束的最小线性二乘 pinv :Moore-penrose伪逆 qr :正交三角分解 (14)特征值和奇异值
15、 balance :提高特征值精度(a good function) cdf2rdf :复数对角型转换为实数对角型 eig :特征值和特征向量 gsvd :广义奇异值分解 hess :矩阵的Hessenvberg形式 poly :根据根给出多项式(系数) qz :广义特征值的QZ分解 rsf2csf :实的Schur形式转换为复的Schur形式 schur :Schur分解 svd :奇异值分解 (15)矩阵函数 expm :矩阵指数(与exp不同) funm :一般矩阵函数 logm :矩阵对数
16、对应expm) sqrtm :矩阵平方根 (16)低级函数 qrdelete:从QR分解中删除列 qrinsert:在QR分解中加入列 (17)二维、三维绘图函数 bar,barh:垂直和水平直方图 hist :统计频数直方图 hold :在图象窗口中保留当前图形 loglog :双对数刻度曲线图 pie :饼图 plot :绘制二维曲线 polar :极坐标图 semilogx semilogy:半对数刻度曲线图 subplot :创建子图 bar3,bar3h:三维直方图 comet3 :三维彗星图 cylind
17、er :柱面图 fill3 :填充的三维多边形 plot3 :三维直角坐标曲线图 quiver3 :三维向量场图 slice :切片图 sphere :生成球面 stem3 :三维火柴杆图 waterfall :瀑布水线图 (18)图形图像处理 axes :生成轴图形对象 axis :坐标轴的比例和外观 cla :清楚当前轴 clc :清除窗口中的命令 clf :清除当前窗口 close :删除指定的图形 copyobj :复制图形对象及其子对象 dra
18、grect :用鼠标拖动矩形 drawnow :完成等待的绘图 figure :创建一个图形窗口 findobj :查找图形对象 gca :获取当前轴的句柄 gcbo :返回当前指向正在被调用的对象的句柄 gcf :获取当前图形句柄 gco :返回当前对象的句柄 get :获取对象的属性 getframe :获取图形帧 ginput :使用鼠标输入数据 image :显示图象对象 ishandle :判断图形对象是否有效 light :创建一个照明对象 line
19、 :创建线对象 newplot :确定图形对象的位置 patch :创建块图形对象 rectangle :生成二维矩形对象 refresh :重新绘制当前图形 reset :将图形对象重新设置为默认值 rotate :按指定方向旋转对象 rotate3d :使用鼠标旋转轴 selectmoveresize:选择移动调整和复制轴和用户界面控制图形对象 set :设置对象属性 surface :创建面对象 text :标注文字 uicontextmenu:创建一个上下文按钮 zoom :在二维图形上
20、进行放大和缩小 (19)体数据可视化 coneplot :三维向量场中将速度向量锥形表示 contourslice:在三维物体切面上绘制等高线 isocaps :计算帽端等表面几何 isonormals :计算等值表面顶点的法向 isosurface :从块体数据中提取等表面数据 reducepatch :缩减块体表面的数目 reducevolume:缩减块体数据集中元素的数目 shrinkfaces :缩减块体表面的尺寸 smooth3 :使三维数据光滑化 stream2 :计算二维流线数据 stream3 :计算三维流线数据
21、streamline :画流线 surf2patch :表面数据转换为块数据 subvolume :从体数据中提取子集 (20)表面、网格和轮廓绘制 contour :二维等高线图 contourc :低层等高线图形计算 contourf :填充二维等高线图 hidden :从一个网线图中删除消隐线 mesh meshc meshz :网线图 peaks :两变量的样本函数 surf surfc :三维阴影表面图 surfl :带有基于色图照明的表面图 trimesh :三角形网线图 trisurf :三角形表面图 (21
22、)域生成 griddata :数据网格化 meshgrid :为三维图形生成XY矩阵 到matlab的官方网站会有很多有用的资料。 Matlab的快捷键: 对提高matlab编程能力的方法,我想主要有以下三个: 1。 查help 2. 多上上论坛,搜索帖子、发帖子问人 3。 阅读别人、特别是牛人的程序 当然了,正如所有的程序语言一样,“3分课本7分上机”,一定要动手才行,不能光看。多想、多思考、多尝试,才是正路。 最后,整理一下常用的快捷键(用【】表示)或命令: 1。 在命令窗口(Command Window)中: 1) 【上、下键】――切换到之前、之后的命令,可以重复
23、按多次来达到你想要的命令 2) clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉 3) clear――这个才是清空当前工作区的变量命令,常用语句clear all来完成 4) 【Tab】键――(转自版友心灯)在matlab@看到的:在command窗口,输入一个命令的前几个字符,然后按tab键,会弹出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成.目前讨论结果是:matlab6.5版本中,如果候选命令超过100个,则不显示。而在matlab7以后版本中,则没有这个限制,均可正常提示 5) 【Ctrl+C】(或【Ctr
24、l+Break】)――(转自版友yangjin_ren)在matlab程序运行过程中,可能由于程序编写的失误,导致程序不停的运行,在命令窗口输入“Ctrl+C”可以将运行的程序停下来,而不需要将整个Matlab程序关掉.不过进行此操作的前提是能够激活切换到命令窗口才行,呵呵。 2. 在编辑器(Editor)中: 1) 【Tab】(或【Ctrl+]】)――增加缩进(对多行有效) 2) 【Ctrl+[】--减少缩进(对多行有效) 3) 【Ctrl+I】--自动缩进(即自动排版,对多行有效) 4) 【Ctrl+R】――注释(对多行有效) 5) 【Ctrl+T】――去掉注释(对多行有效)
25、 6) 【Ctrl+B】――括号配对检查(对版本6。5有效,但版本7。0无效,不知道是取消了还是换了另外的快捷键,请大牛们指点,其他版本没有测试过) 7) 【F12】――设置或取消断点 8) 【F5】――运行程序 其余的例如在Debug状态下的快捷键就不多说了,自己看菜单Debug吧。文档为个人收集整理,来源于网络个人收集整理,勿做商业用途 25)请问可以查看Matlab中函数的源代码吗? :#FangQ(Qianqian。Fang@Dartmouth.Edu),2002/6/21,BigGreen/MathTools # Matlab除了buildin函数和mex/dll文件
26、看不到原码,其他如工具箱等都可 以直接看到代码,首先确认该文件安装在matlab中,即which filename.m存在,然后可以edit filename。m 再附两段代码,其余的图形代码类似, 参照有关公式,自己稍微摸索一下即可绘出. %%%===================================%%% %%% 螺旋面 clear all u=linspace(0,2*pi); v=linspace(0,6*pi); [U,V]=meshgrid(u,v); x=(4+sin(20*U)).*cos(V); y=(4+sin(20*U))
27、*sin(V); z=2*V; mesh(x,y,z) axis equal %%%===================%%% %%% 螺旋卷筒 clear all R=2; b=2; u=linspace(0,2); v=linspace(0,6*pi); [U,V]=meshgrid(u,v); x=U。*cos(V); y=U.*sin(V); z=U.*V; mesh(x,y,z) axis equal axis off %%%====================%%% %%% 圆环面 clc clear u=linspace(0
28、2*pi,100); v=linspace(0,2*pi,100); [U,V]=meshgrid(u,v); X=(4+sin(U)).*cos(V); Y=(4+sin(U))。*sin(V); Z=cos(U); mesh(X,Y,Z) axis equal axis off %%% 螺旋管,俗称“弹簧" clc clear u=linspace(0,2*pi,100); v=linspace(0,6*pi,100); [U,V]=meshgrid(u,v); X=(4+sin(U))。*cos(V); Y=(4+sin(U))。*sin(V); Z=
29、cos(U)+V; mesh(X,Y,Z) axis equal axis off %%% 圆柱上的缎带 clc clear u=linspace(0,2); v=linspace(0,6*pi); [U,V]=meshgrid(u,v); X=2*cos(V); Y=2*sin(V); Z=U+V; mesh(X,Y,Z) axis equal axis off %%% 纽带 clc clear u=linspace(0,2); v=linspace(0,6*pi); [U,V]=meshgrid(u,v); X=U.*cos(V); Y=U.*
30、sin(V); Z=5*V; mesh(X,Y,Z) axis equal axis off 。mat格式,二进制文件.该文件能保存多个变量的值,但在被MATLAB处理时不能被其他程序共享。 .mat文件读写的实例: 〉> A=[1 2 3 4] A = 1 2 3 4 〉> B=[1 ;2 ;3] B = 1 2 3 >〉 C=[1 2 3;4 5 6;7 8 9] C = 1 2 3 4 5 6 7 8 9
31、 >> save MyDatFile C B A %保存数据,默认保存类型为二进制文件,此时在当前工作目录下成MyDatFile。mat文件 >〉 clear C B A 〉〉 C ??? Undefined function or variable ’C’. %此时已无C的记录 〉〉 load MyDatFile C B A %从.mat文件中读取变量 〉〉 C 输出结果为: C = 1 2 3 4 5 6 7 8 9 matlab中脚本文件和函数文件有什么区别? MA
32、TLAB中有一种文件叫M文件,他就是一系列代码组成的一个扩展名为。m的文件,虽然M文件是简单的ASCII型的文本文件,但是和其语法和高级语言一样,是一种程序化的编程语言。 M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions).脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量,两者的简要区别如下: 脚本文件 1.多条命令的综合体 2。没有输入、输出变量 3。使用MATLAB基本工作空间 4。没有函数声明行 函数文件 1.常用于扩充MATLAB
33、函数库 2。可以包含输入、输出变量 3。运算中生成的所有变量都存放在函数工作空间 4.包含函数声明行 脚本文件可以理解为简单的M文件,脚本文件中的变量都是全局变量。函数文件是在脚本文件的基础之上多添加了一行函数定义行,其代码组织结构和调用方式与对应的脚本文件截然不同。函数文件是以函数声明行“function。。。”作为开始的,其实质就是用户往MATLAB函数库里边添加了子函数,函数文件中的变量都是局部变量,除非使用了特别声明。函数运行完毕之后,其定义的变量将从工作区间中清除。而脚本文件只是将一系列相关的代码结合封装,没有输入参数和输出参数,即不自带参数,也不一定要返回结果。而多数函数文件一般都有输入和输出变量,并见有返回结果。






