首页 matlab函数及脚本文件入门

matlab函数及脚本文件入门

举报
开通vip

matlab函数及脚本文件入门第三章 MATLAB程序设计 3.1 M文件建立 3.2 脚本文件 3.3 函数文件 3.4 程序控制结构 3.5 程序调试 1 1. M 文件 Matlab 命令组合构成,完成操作和算法 M文件分类: 文本文件 扩展名为.m ; 文本编辑器: 3.1 M文件建立 M文件编辑器 windows的记事本 word文件 Script脚本文件/命令文件 编写Matlab 语言的程序 Function函数文件 M 文件是由若干 Matlab 命令组合在一起构成的,它可以完成某些操作,也可以实现某...

matlab函数及脚本文件入门
第三章 MATLAB程序设计 3.1 M文件建立 3.2 脚本文件 3.3 函数文件 3.4 程序控制结构 3.5 程序调试 1 1. M 文件 Matlab 命令组合构成,完成操作和算法 M文件分类: 文本文件 扩展名为.m ; 文本编辑器: 3.1 M文件建立 M文件编辑器 windows的记事本 word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 文件 Script脚本文件/命令文件 编写Matlab 语言的程序 Function函数文件 M 文件是由若干 Matlab 命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言开发的 M 文件。用户也可以结合自己的工作需要,开发自己的函数程序或工具箱 。利用 Matlab 的程序控制功能,可以将有关 Matlab 命令编成程序存储在一个文本文件中(M 文件),然后在命令窗口中运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕。 用 Matlab 语言编写的程序称为 M 文件, 以 .m 为扩展名。M 文件是一个文本文件,可以用任何文本编辑器来建立和编辑(windows的记事本和word文件),通常使用 Matlab 自带的 M 文件编辑器。 2 (1) 新建M 文件 2.M文件建立和打开 命令操作: 命令按钮: edit 快捷键 M 文件编辑器 (2)打开M 文件 File /Open edit M 文件名 双击 M 文件 菜单操作: 1.blank m-file 表格或空白文件 2.function m-file 函数文件 File/New 3 (2). windows记事本和word 创建m文件应纳入搜索路径或当前目录,命令窗口才运行 3 . matlab搜索路径的设置 which filename 显示路径: 设定当前目录: cd d:\myfile 设定搜索路径: set path  (add folder) >> addpath(' folder path') 删除rmpath(' folder path') addpath folder path 4. 显示M文件内容 type M文件 调用格式: >> edit >> which aaaa aaaa not found. >> cd C:\Users\Desktop\matlab >> addpath(‘C:\Users\Desktop\matlab’) >> edit aaaa >>type aaaa >> type aaaa.m qq=22; bb=444; dd=qq+bb; 在命令窗口显示 % fcircle calculate the area and perimeter of a circle of radii r % r 圆半径 % s 圆面积 % p 圆周长 % 2004年7月30日编 r=22; s=pi*r*r p=2*pi*r 1. 编脚本文件求半径为r的圆的面积和周长 H1注释行 函数体 帮助文本区 保存rsp 3.2 脚本文件 由于help搜索 例 例 按用户意图排列起来一堆命令集合来执行完成一项任务,是简单命令叠加 7 运行后所有变量驻留在基本工作空间(base workspace) 文件变量名不要和计算机命令、函数、文件名相同。 >> whos Name Size Bytes Class Attributes p 1x1 8 double r 1x1 8 double s 1x1 8 double >> rsp 2. 调用脚本文件 >>filename >>rps*34 3. 脚本文件特点 一串命令行简单叠加的集合; 自动按顺序执行文件的命令; 无输入和输出量; 所有变量都驻留在基本工作空间中; 所有变量均为全局变量。 [v,d]=eig(a) 与命令窗口逐行执行文件中的所有指令一样,其结果是一样的。 9 4. 数据输入 从键盘输入数据给变量A A=input('Please input A: ') name=input('What''s your name? ', 's') A=input(‘提示信息’) Please input A: 33 A=input(‘提示信息’, 's') 输入字符串变量: 输入数值: name =lili 10 clear; r=input('Please input radii :'); s=pi*r*r; p=2*pi*r; >> ddd Please input radii :33 s = 3.4212e+003 p = 207.3451 保存ddd 例 例 第一种调用格式: >> a=input('input example') input example 1+4 a = 5 >> ischar(a) ans = 0 第二种调用格式: >> b=input('input example\n','s') input example 1+4 b = 1+4 >> ischar(b) ans = 1 \n是换行 disp(X) 5. 数据输出 disp 数据输出: 数值变量 x=1:2:5; >> x x =1 3 5 >> disp(x) x = 1 3 5 例 例 disp('the x value is') disp(x) >> disp(['the x value is:', num2str(x)]) the x value is:1 3 5 num2str(x) 数值转换字符串 disp(‘X’) 字符串 the x value is 1 3 5 function [s,p]=fci(r) s=pi*r*r ; p=2*pi*r; end r=input('r='); s=pi*r*r; p=2*pi*r; sp=[s,p] disp(['s=',num2str(sp(1)),',p=',num2str(sp(2))]) 脚本文件: 函数文件: 例 例 编脚本文件求半径为r的圆的面积和周长 15 输入x,y值,并将它们值互换后输出。 例 例 x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y); fprintf(format, A, ...) fprintf(fileid, format, A, ...) Format 指定数据输出的格式 %d 整数 %e 实数:科学计算法形式 %f 实数:小数形式 %g 由系统自动选取上述两种格式之一 %s 输出字符串 fileid:文件句柄,若缺省,则输出到屏幕 A是用来存放数据的矩阵 6. 格式化输出 指定格式将变量的值输出到屏幕或指定文件 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。 >> a='string'; >> fid=fopen('d:\char1.txt','w'); >> fprintf(fid,'%s',a); >> fclose(fid); >> fid1=fopen('d:\char1.txt','rt'); >> b=fscanf(fid1,'%s') 例 例 >> b=3 fprintf ('there are %f ',b ) >> there are 3.000000 3.3 函数文件 3.3.1 函数文件 3.3.2 全局变量和局部变量 3.3.3 子函数与主函数 3.3.4 函数句柄和匿名函数 function [s,p]=fcircle (r) % FCIRCLE calculate the area and perimeter of a circle of radii r % r 圆半径 % s 圆面积 % p 圆周长 % 2004年7月30日编 s=pi*r*r; p=2*pi*r; end 编函数文件求半径为r的圆的面积和周长 函数定义行 H1注释行 函数体 帮助文本区 3.3.1 函数文件 例 例 1. 函数文件的格式: function 输出变量=函数名(输入变量) H1行 – 用一行文字来综述函数的功能 帮助区 函数体语句 注释说明语句段 function [ output_args] = Untitled( input_args) %UNTITLED5 Summary of this function goes here % Detailed explanation goes here end function m-file: 21 第一行function引导词; 起函数名要有含义,文件名与一致,即函数名.m; 列出函数与外界交换数据的全部输入/输出量; 输入/输出量数目不限,可有可无; 输出多个变量,应用方括号 [v1,v2]。 function定义行 输出变量=函数名(输入变量) 输入/输出量可有可无 >> [s,p]=fcircle(22) s = 1.5205e+03 p = 138.2301 >> s=fcircle(22) s = 1.5205e+03 >> fcircle(22) ans = 1.5205e+03 function ffcircle (r) s=pi*r*r; p=2*pi*r; end function [s]=ffcircle (r) s=pi*r*r; p=2*pi*r; end 确定输入和输出变量数目 nargin(‘函数名’) nargout(‘函数名’) 输入个数 输出个数 r = roots(c) nargin('roots') nargout('roots') ans = -1 输入个数不确定,显示负值 nargin(‘plot') Jacobi迭代法的MATLAB函数文件Jacobi.m如下: function [x,n]=jaco(A,b,x0,eps) if nargin==3 eps=1.0e-6; elseif nargin<3 error return end D=diag(diag(A)); %求A的对角矩阵 L=-tril(A,-1); %求A的下三角阵 U=-triu(A,1); %求A的上三角阵 B=D\(L+U); f=D\b; x=B*x0+f; n=1; %迭代次数 while norm(x-x0)>=eps x0=x; x=B*x0+f; n=n+1; end >> nargin('jaco') ans = 4 >> nargout('jaco') ans = 2 H1注释行 文件第二行,是帮助文本的第一行; %开头注释行,字符不被matlab执行; 大写体的文件名和运用关键词简要描述的函数功能; 在线帮助使用;lookfor只H1行查询关键词。 H1行后%的注释行组成; 详细说明函数功能,如输入/输出量总数和调用格式说明 Help function_name显示所有的%的注释行。 帮助文本区: >> lookfor fcircle fcircle - calculate the area and perimeter of a circle of radii r help fcircle FCIRCLE calculate the area and perimeter of a circle of radii r r 圆半径 s 圆面积 p 圆周长 2004年7月30日编 显示注释:help 文件名 lookfor fcircle 函数体 实现函数文件功能的指令组成; 接受输入量、程序结构控制,创建输出量。 注释 %开头注释行; 函数文件任意位置 ,绿色表示; 对语句注释说明。 2 函数调用 [输出变量]=函数名(输入变量) 调用格式: >> rr=234 rr = 234 >> [x,y]=ff(rr) x = 1.7202e+005 y = 1.4703e+003 >> whos Name Size Bytes Class rr 1x1 8 double x 1x1 8 double y 1x1 8 double function [s,p]=fcircle(r) >>ff(2,3)*34 >> whos Name Size Bytes Class ans 1x1 8 double >> clear >> ff(333) ans =3.4837e+005 29 函数调用特点 开辟临时函数工作空间(Function workspace) 存放中间变量; 运行完毕,中间变量被清除以及临时空间关闭; 函数调用实参数不必与函数定义行形参数同名; 实参数的顺序、个数应与形参数一致,否则出错。 运行后只保留最后结果,不保留中间过程; function [s,p]=fcircle (r) s=pi*r*r; p=2*pi*r; end function [x,n]=jaco(A,b,x0,eps) if nargin==3 eps=1.0e-6; elseif nargin<3 error return end D=diag(diag(A)); %求A的对角矩阵 L=-tril(A,-1); %求A的下三角阵 U=-triu(A,1); %求A的上三角阵 B=D\(L+U); f=D\b; x=B*x0+f; n=1; %迭代次数 while norm(x-x0)>=eps x0=x; x=B*x0+f; n=n+1; end >> A=[10,-1,0;-1,10,-2;0,-2,10]; b=[9,7,6]'; [xx,nn]=jaco(A,b,[0,0,0]',1.0e-6) >> [xx,nn]=jaco([10,-1,0;-1,10,-2;0,-2,10],[9,7,6]',[0;0;0]) xx = 0.9958 0.9579 0.7916 nn = 11 实参数 形参数 2016年3月28日4时6分 32 function abcd(a,b) c=a+b d=sin(c) e=log(d) 保存为abcd.m 在工作窗口中调用: >>a=2;b=[3,4,5,6]; >>abcd(a,b) a=2; b=3; c=a+b; d=sin(c) ; e=log(d) ; 保存为:abcd.m 在工作窗口中调用: >>abcd %文件名即可 函数文件 脚本文件 局部变量 全局变量 function e=abcdef(a,b) c=a+b d=sin(c) e=log(d) 保存为abcd.m 在工作窗口中调用: >>a=2;b=[3,4,5,6]; >>ee=abcdef(a,b) 例 例 程序中变量均为局部变量; 脚本式M文件 函数式M文件 无函数定义行; 有函数定义行; 无输入和输出量,也不一定要返回结果。 可有输入和输出变量,并有返回结果; 在base workspace中数据操作,运行后变量驻留其中; 中间变量存在临时工作空间,它随函数结束而删除; 全局变量。 局部变量,除特别声明。 脚本文件和函数文件的区别 3.3.2. 全局变量和局部变量 全局变量: 所有变量驻留在基本工作空间中,即全程有效; 所有函数都可对其进行存取和修改; 定义全局变量是函数之间传递信息的手段。 仅在函数工作空间中间变量,影响仅限于函数本身; 函数文件变量不能直接访问workspace中的全局变量,它只能读取通过参数传入的变量; 函数文件中定义的变量不能被另一个函数文件引用; 如果在若干函数中,把某个变量定义为全局变量,那么这些函数可以共用这个变量。 局部变量: 2016年3月28日4时6分 36 function [avgs]=test4(A) global S SS %定义全局变量 [m,n]=size(A); for i=1:m s(i)=sum(A(i,:)) end ss=sum(s) avgs=ss/(m*n) end 调用test4: >> A=[4 3 5;6 7 8;3 5 7;1 3 4]; >> test4(A) ans = 4.6667 >> global S SS >> ss ss = 56 >> s s = 12 21 15 8 定义全局变量 global 注意:变量之间以空格分隔,而不能用逗号分隔。 global 变量名 调用格式: 例 例 一般大写字母 在matlab中,函数内部定义的变量除特殊声明外均为局部变量。如果需要使用全局变量,则应当使用命令global定义,而且在任何使用该全局变量的函数中都应加以定义,在命令窗口中也不例外。 36 2016年3月28日4时6分 37 一个M文件可含多个函数,第一个主函数,其它子函数; 主函数必须在最前面,子函数次序可随意调整; 子函数仅被主函数或同一文件其它子函数所调用; 私有函数是主函数的一种,只在限定函数群可见,一般放在private命名子目录中。它只对父目录中函数可见。 3.3.3 主函数与子函数 function c=test(a,b) %主函数 c=test1(a,b)*test2(a,b); end function c=test1(a,b) %子函数1 c=a+b; end function c=test2(a,b) %子函数2 c=a-b; end 子函数则只能在主函数文件中编辑 例 例 主函数和子函数 function [ ]=homework %problem 1 x=-3:3; disp('problem 1') disp('the squares of the input values are listed below') y=square(x); disp(y) %problem 2 r1=0.5; r2=0.25; disp('problem 2') disp('the cold work is') cold_work(r1,r2) %problem 3 m=[1,2,3]; g=9.8; dz=5; disp('problem 3') disp('the change in potential energy is') potential_energy(m,g,dz) function result=square(x) result=x.^2; function result=cold_work(r1,r2) result=(r1.^2-r2.^2)/ r1.^2; function result=potential_energy(m,g,dz) result=m.*g.*dz; 例 例 3.3.4 函数句柄和匿名函数 两种创建句柄: >>class(hd) ans =function_handle hfun=str2func(‘fun’) >> hfun=@fun 携带函数路径的函数,反复调用方便,像变量调用。 函数句柄: hfun=@+函数名 >> hfun=str2func(‘fun’) function fv=fun(x) fv=x-10.^x+2; end 40 函数句柄调用: [y1, y2, ..] = feval(fhandle, x1, ..., xn) >> feval(hfun,3) ans =46.0977 [y1, y2, ..] = hfun( x1, ..., xn) 直接调用: >> hfun(3) ans =46.0977 feval间接调用: 调用函数文件一样 执行由串指定的函数 匿名函数 以@符号开头; expression为函数体; xlist为输入参数列表 f= @ (xlist)expression 简单形式,不要求M文件, 在命令窗口或者M文件中定义。 只含表达式、任意多输入和输出变量。 特点: 格式: ff=@(x)sin(x) >> ff(2) >> feval(ff,2) yyy=@(x)sin(x).*log(x) 42 顺序结构 3.4.1 条件(选择)结构 3.4.2 循环结构 3.4.3 try-catch结构 3.4.4 其它指令 3.4 程序控制结构 3.4.1 条件(选择)结构 if 语句 switch 语句 条件结构:根据给定条件成立与否,执行不同语句。 条件结构的语句: (1) 单分支结构 if expression (条件表达式:关系和逻辑) statements (语句组A) end 1. if 条件语句 if expression (条件) statements1(语句组A) else statements2(语句组B) end (2) 双分支结构 x=input('请输入x的值:'); if x<=0 y=(x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end fprintf('y=%e',y) 例 例 计算分段函数值 if expression1 (条件1) statements1(语句组1) elseif expression2 (条件2) statements2(语句组2) ... ... elseif expressionm (条件n) statementsm(语句组n) else statements(语句组n+1) end (3) 多分支结构 根据评分原则:大于等于90分为A,大于等于80分为B,大于等于70分为D,大于等于60分为C,小于60分不合格E 例 例 function result=grade(x) if x>=90 result='A'; elseif x>=80 result='B'; elseif x>=70 result='C'; elseif x>=60 result='D'; else result='E'; end A=input('A='); B=input('B='); if A>B 'greater' elseif A=90 result='A'; elseif x>=80 result='B'; elseif x>=70 result='C'; elseif x>=60 result='D'; else result='E'; end function result=grade(per) k=floor(per/10) switch k case {9,10} result='A'; case 8 result='B'; case 7 result='C'; case 6 result='D'; otherwise result='E'; end per=input('输入成绩') k=floor(per/10) switch k case {9,10} disp('A') case 8 disp('B') case 7 disp('C') case 6 disp('D') otherwise disp('E') end 第二种方法 循环结构:按照给定的条件,重复执行指定的语句。 循环结构的语句: 3.4.2 循环结构 for 语句 while 语句 for variable=expression(循环变量) statement(循环体) end 1. for 循环 for 循环变量=初始值:步长:终止值 循环体语句 end =<循环次数设定> y=0; n=100; for k=1:n y=y+1/(2*k-1); end y 当 n=100 时,求 y 的值 n=100; i=1:2:2*n-1 x=1./i y=sum(x) y 无循环 采用循环语句会降低其执行速度,所以程序通常由下面的程序来代替: n=100; y=sum(1./(1:2:2*n-1)); y 例 例 for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 例 例 Fix向零取证 Rem除法求余 function H=hilbn(n) for i = 1:n for j = n:-1:1 H(i, j) = 1/(i+j-1); end end H 建立Hilbter函数 2. 循环的嵌套 function H=myhilb (n) for i = 1:n for j =1:n H(i,j)=1/(i+j-1); end end 例 例 为得到最大速度,在For (while)循环被执行之前,应预先分配数组.建议使用zeros或ones等命令预先分配所需内存(即矩阵大小) x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); end x 例 x = rand(1,50000); %随机投币50000次 sum=0;k1=0;a=zeros (1,50000);b= zeros (1,50000); %赋予初始值占位, for (i=1:50000) sum=sum+1; %投币次数累计值 if x(i) > 0.5 %投币正面概率> 0.5 k1=k1+1; %投币正面次数累计值 end a(i)=k1; %投币正面次数累计值 b(i)=sum; %投币次数累计值 end f1=a./b; %正面概率 figure(1) plot(b,f1),title('出现正面的频率变化曲线') figure(2) plot(b,1-f1),title('出现反面的频率变化曲线') k1%正面次数,k2=sum-k1 %反面次数 f1=k1/sum %正面频率,f2=1-f1 %反面频率 例 投掷硬币实验 3. while 循环 while expression (条件<逻辑变量>) statement(循环体) end n = 0; while 2^n < 100 s= 2^n; n = n + 1 ; end s n 求n为多少时,2^n>100,其值多少 例 例 2016年3月28日4时6分 64 for适用已知到循环次数,而不知循环运算目标; while适用已知循环运算目标,而循环次数未知; 为了提高代码的运行效率,避免 for 循环的使用; 4.for和while循环语句区别 2016年3月28日4时6分 65 计算级数:S=1+2+22+23+···+263= s=0; i=0; while i<64 s=s+2^i; i=i+1; end s i s=0; i=0; for i=1:63 s=s+2^i; i=i+1; end s i 1 2 例 例 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。 sum=0; cnt=0; val=input('Enter a number (end in 0):'); while val~=0 sum=sum+val; cnt=cnt+1; val=input('Enter a number (end in 0):'); end if cnt > 0 sum mean=sum/cnt end 例 例 try 语句组1 catch 语句组2 end lasterr %显示出错原因 3.4.3 try-catch语句 Try 检测程序代码是否出错; 先试探语句组1,如出现错误,则将错误信息赋给lasterr保留; 并转去执行语句组2。 语句格式 矩阵乘法运算要求两矩阵维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。 A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因 例 例 程序设计常遇到提前终止循环、跳出子程序、显示出错信息等情况,主要有break、continue、 keyboard 、 return、pause、 echo、error等。 3.4.4 其它程序控制语句 69 1. break 和 continue break和continue与循环结构for 和while相关语句,它们一般与if配合使用。 break 终止循环,即跳出最内层循环 ; continue结束本次循环,进行下次循环. continue当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。 70 求[100,1000]之间第一个能被21整除的整数。 for n=100:1000 if rem(n,21)~=0 continue end break end n 例 例 Rem除法求余 停止运行,控制权给键盘,命令窗口“>>”变成“K>>”;。 对程序调试和程序运行中修改都很方便。 function abcdek(a,b) c=a+b; keyboard d=a*b e=a/b end function abcdef(a,b) c=a+b; d=a*b return e=a/b*d 2. keyboard 3. return abcdek(4,2) K>> a=2 a = 2 K>> return d = 4 e = 1 例 例 输入return后,控制权将交回文件 function abcde(a,b) c=a+b; d=a*b e=a/b end 72 4. 程序的暂停 pause pause 或 pause(n) 若想强行终止程序的运行,可以使用 Ctrl+c n 是延迟时间,以秒为单位; 缺省,将暂停程序,直到用户按任意键后继续 pause off 屏蔽程序中所有 pause 的作用 pause on 打开 pause 的作用 function abcdp (a,b) c=a+b d=sin(c) pause e=log(d) function abcd (a,b) c=a+b d=sin(c) e=log(d) >> abcd(3,4) c = 7 d = 0.6570 任意键 e = -0.4201 例 例 5. echo 在命令窗口显示执行过程的M文件的命令 执行M文件时,通常在命令窗口是看不到执行过程的,但在特殊情况下(比如演示)要求M文件的每条命令都要显示出来。这时可以用echo命令实现这样的功能。 75 >> echo on >> ed for n=100:1000 if rem(n,21)~=0 continue if rem(n,21)~=0 continue if rem(n,21)~=0 continue if rem(n,21)~=0 continue if rem(n,21)~=0 continue if rem(n,21)~=0 end break end n n = 105 >> echo abcd on >> abcd(3,4) c=a+b; d=sin(c); e=log(d) e = -0.4201 function abcd (a,b) c=a+b d=sin(c) e=log(d) for n=100:1000 if rem(n,21)~=0 continue end break end n 保存为ed 例 例 6. error function abcd (a,b) c=a+b d=sin(c) cc e=log(d) >> abcd(3,4) c = 7 d = 0.6570 ??? Undefined function or variable 'cc'. Error in ==> abcd at 4 cc 显示指定的出错信息并终止当前程序运行 Error(‘message’) 类似warning,区别warning显示指定警告还运行 例 例 77 3.5 程序调试 M文件错误种类: 语法错误:函数参数输入类型,括号,矩阵运算 运算错误 :运行过程中死机或溢出,与程序本身有关。 M文件设计应避免情况:Inf,nan或空矩阵 避免方法:可能异常地方提供识别语句, 识别语句:isinf, innan, isempty 在编译和运行程序时出现错误(警告)无法避免,因此掌握程序调试的方法和技巧针对语法错误和运算错误调试,对提高工作效率很重要。 2016/3/28 78 设置断点 利用它来指定程序代码的断点,使得程序在断点前停止执行,并进入调试模式,从而可以检查当前各个变量的值。 dbstop in mfile 文件名为mfile的M文件的第一个可执行语句前设置断点。 dbstop in mfile at lineno mfile的M文件的第lineno行设置断点。如果第lineno行为非执行语句,则在其后的第一个可执行语句前设置断点。 dbstop in mfile at subfun mfile的M文件子程序subfun第一个执行语句前设置断点。 dbstop if error 遇到错误时,自动设置断点。不包括try…catch之间的错误。 dbstop if all error 遇到错误时,自动设置断点。包括try…catch之间的错误。 dbstop if warning 遇到警告时,自动设置断点 dbstop if caught error try…catch间代码遇到错误时,自动设置断点。 dbstop if naninf 或 dbstop if infnan 当程序运行遇到无穷值或者非数值时,自动设置断点。 dbtype显示行号的M文件文本 dbstatus显示断点信息 dbcont 继续执行 到程序结束,或者下个断点 dbstep将从断点处继续执行M文件 dbclear in mfile清除断点 dbquit 退出调试状态 其它调用函数 2016/3/28 82 function y=t (x) l=length(x); y={1:l}+x 使用命令调试程序: 83 在命令窗口输入dbstop in function8,打开function8.m,可见在第一个可执行语句前设置断点。 单击图中红点,会发现红点被取消,此时回复到初始状态。然后在命令窗口依次输入dbstop if error和test(magic(3)),可得到如下的运行结果和如下图所示的界面。
本文档为【matlab函数及脚本文件入门】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
少女天空618
工作细心,责任心强,具有良好的沟通协调能力,抗压能力强,具有较强的逻辑思维能力,数据敏感度高,具备良好的创新能力。
格式:ppt
大小:706KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2019-02-02
浏览量:32