Z Mathematical Model ‡ ' MATLAB简介.

Slides:



Advertisements
Similar presentations
第三节 函数的微分及其应用 一、微分的概念 二、微分的几何意义 三、微分的基本公式及其运算法则 四、微分在近似计算中的应用 五、小结、作业.
Advertisements

人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
第 5 章 中國的都市.
社交礼仪.
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
我愛你,你不愛我, 我得不到的心,別人也休想得到。
1、一般地说,在生物的体细胞中, 和 都是成对存在的。
辨性别 A B. 辨性别 A B 第三节人类染色体与性别决定 昌邑市龙池初中 杨伟红 学习目标 1.理解人的染色体组成和传递规律。 2.解释人类性别决定的原理。 3.通过探究活动,解读数据了解生男生女的比例。
入党基础知识培训.
《中国共产党发展党员工作细则》 学习提纲 中共进贤县委组织部 宋 剑
—— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位
第十章 图像的频域变换.
重點彙整 股份有限公司是 法人 最高的權力機構為 最高的執行機構為 以非現金方式發行股票時: 若高估資產將產生 若低估資產將產生
MATLAB小结、 经典迭代法、CG.
古文閱讀 – 像虎伏獸 明 劉基 組員: 5號江依倫 6號江若薇 12號張珉芫 32號蔡燕如.
参考书: 《数字信号处理及其Matlab实现》
Matlab教學 Speaker:林昱志 Date:2012/10/18.
張智星 清大資工系 多媒體檢索實驗室 MATLAB小傳與外觀 張智星 清大資工系 多媒體檢索實驗室.
1-1 MATLAB 小傳(1) 由MathWorks公司於1984年推出的 數學軟體。 名稱是由「矩陣實驗室﹙MATrix
1012 MATLAB 教學 彭奕翔 2013/02/27.
色 弱 與 色 盲.
《社交礼仪分享》 阳晨牧业科技有限公司 市场中心 二O一二年四月十八日.
認識拿破崙˙波拿巴 關於一位運氣很差的矮子的趣事兩三件 我不是矮子!! 本日主角 重點不是這個吧? 惡搞人員:橘蘋3顆和一隻小精靈.
第二部分 微积分问题的计算机求解 《数学分析》实验课.
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
目录 组织保障机制 业务规则学习 账户规范报送 技术平台建设 上线后续工作.
第三讲 MATLAB的符号运算 科学与工程技术中的数值运算固然重要,但自然科学理论分析中各种各样的公式、关系式及其推导就是符号运算要解决的问题。 在Matlab7.0中,符号计算虽以数值运算的补充身份出现,但它们都是科学计算研究的重要内容。 Matlab开发了实现符号计算的工具包Symbolic Math.
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
MATLAB介紹.
第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。
第四章 线性代数问题求解 矩阵 线性方程组的直接解法 线性方程组的迭代法 线性方程组的符号解法 稀疏矩阵技术 特征值与特征向量.
Matlab M檔案 方煒 台大生機系.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
第1章 MATLAB概述 编者.
MATLAB、CTEX简介 及其 在教学中的应用
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
数学软件 Matlab —— Matlab 符号运算.
Application of Matlab Language
University of Electronic Science and Technology, China
引 言.
Introduction to MATLAB
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
第2章 MATLAB程序设计 编者.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
第九章 結 帳 9-1 了解結帳的意義及功能 9-2 了解虛帳戶結清之會計處理 9-3 了解實帳戶結轉的會計處理
第6章 MATLAB符号计算 6.1 符号计算基础 6.2 符号导数及其应用 6.3 符号积分 6.4 级数 6.5 代数方程的符号求解
MATLAB 入门教程.
MATLAB 程式設計入門篇 初探MATLAB
學這些有什麼好處呢? 為了把資料作更客觀之總結描述或比較多組資料。總而言之,就是要找出一個數能代表整組數據。
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
MATLAB 程式設計入門篇 初探MATLAB
第8章 MATLAB数值积分与微分 8.1 数值积分 8.2 数值微分
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
新课标人教版课件系列 《高中数学》 必修5.
中国大连高级经理学院博士后入站申请汇报 汇报人:XXX.
MATLAB 程式設計進階篇 多項式的處理與分析
第4章 MATLAB数值运算 编者.
第1章 MATLAB操作基础 1. 1 MATLAB概述 1. 2 MATLAB的运行环境与安装 1. 3 MATLAB集成环境 1
第5章 MATLAB符号运算 编者.
数学软件 Matlab —— 自定义函数的几种方式.
第7章 MATLAB工程计算.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
原版:清大資工系 張智星 新增版:方煒 台大生機系
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
实验二 定积分的近似计算.
Presentation transcript:

Z Mathematical Model ‡ ' MATLAB简介

MATLAB的发展史 MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件工具包库程序的的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。 1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。

MATLAB语言的主要特点 (1)具有丰富的数学功能 包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。 包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码函数、贝塔函数、椭圆函数等。 包括各种数学运算功能。如:数值微分、数值积分、插值、求极值、方程求根、FFT 、常微分方程的数值解等。 (2)具有很好的图视系统 可方便地画出两维和三维图形。 高级图形处理。如:色彩控制、句柄图形、动画等。 图形用户界面GUI制作工具,可以制作用户菜单和控件。使用者可以根据自己的需求编写出满意的图形界面。

MATLAB语言的主要特点(续) (3)可以直接处理声言和图形文件。 声言文件。如: WAV文件(例:wavread,sound等)。 图形文件。如: bmp 、gif 、 pcx 、tif 、jpeg等文件。 (4)具有若干功能强大的应用工具箱。 如:SIMULINK、COMM、DSP、 SIGNAL等16种工具箱。 (5)使用方便,具有很好的扩张功能。 使用MATLAB语言编写的程序可以直接运行,无需编译。 可以M文件转变为独立于平台的EXE可执行文件。 MATLAB的应用接口程序API是MATLAB提供的十分重要的组件 ,由 一系列接口指令组成 。用户就可在FORTRAN或C中 , 把MATLAB当作计算引擎使用 。 (6)具有很好的帮助功能 提供十分详细的帮助文件(PDF 、HTML 、demo文件)。 联机查询指令:help指令(例:help elfun,help exp,help simulink),lookfor关键词(例: lookfor fourier )。

同一个元胞数组中各元胞的内容可以不同。(例 1_2_1) MATLAB简介 1 MATLAB的计算功能 (1) MATLAB的数据类型 现有四种基本数据类型:双精度数组、字符串数组、元胞数组、构架数组。 元胞数组(Cell Array)如同银行里的保险箱库一样。 该数组的基本组分是元胞(Cell),以下标来区分。 元胞可以存放任何类型、任何大小的数组。 同一个元胞数组中各元胞的内容可以不同。(例 1_2_1) 构架数组(Structure Array)也能存放各类数据。 该数组的基本组分是构架( Structure ),以下标来区分。 构架必须在划分“域”后才能使用。 数据不能存放于构架,只能存放在域中。 构架的域可以存放任何类型、任何大小的数组。 不同构架的同名域中存放的内容可不同。(例 1_2_2 )

一. 矩阵: 1.矩阵的建立与表示法: 在命令窗口中输入:A=[1,2,3;4,5,6;7,8,9] 可以得到: A = 1 2 3 4 5 6 7 8 9 若要显示整行或整列,则可以用(:)冒号来表示。冒 (:)代表矩阵中行(ROWS)或列(COLUMNS)的全部。 例如执行命令:A(:,2),就会显示第2列的全部,结果 为: ans = 2 5 8

其他特殊矩阵的生成方法: 1)、eye (m,n)或eye (m) 产生m*n 或 m*m的单位矩阵。例如: eye (3,4)与eye (3)分别产生如下矩阵: 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 2)、zeros (m,n) 或 zeros (m) 产生m*n 或m*m 的零矩阵。例如: zeros (3,4) 与zeros (3) 分别产生如下矩阵: 0 0 0 0 0 0 0

3)、ones (m,n) 或ones (m) 产生m*n或m*m的全部元素为1的矩 阵。例如:ones (3,4)与ones(3)分别产生如下矩阵: 1 1 1 1 1 1 1 2.常用矩阵函数: 1)、d=eig (A) 返回矩阵A的特征值所组成的列向量; [v,d]=eig (A) 返回分别由矩阵A的特征向量和特征值(以其为主对角线元素,其余元素为零)的两个矩阵。 例如执行命令:[v,d]=eig (A) 结果为:

v = d = 0.2320 0.7858 0.4082 16.1168 0 0 0.5253 0.0868 -0.8165 0 -1.1168 0 0.8187 -0.6123 0.4082 0 0 -0.0000 其中v (:,i) 为d (i,i)所对应的特征向量。 2)、det (A) 计算行列式A的值。例如:det (A) 结果为: ans = 0

3)、expm (A) 对矩阵A求幂。例如:expm (A) 结果为: ans = 1.0e+006 * 1.1189 1.3748 1.6307 2.5339 3.1134 3.6929 3.9489 4.8520 5.7552 4)、inv (A) 求矩阵A的逆。例如:inv (A) 结果为: Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 2.055969e-018. ans = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007

5)、orth (A) 返回对应于A的正交化矩阵。例如:orth (A) 结果为: ans = 0.2148 0.8872 0.5206 0.2496 0.8263 -0.3879 6)、poly (A) 若A为一矩阵,则返回A的特征多项式。例如:poly (A) 结果为: 1.0000 -15.0000 -18.0000 -0.0000 若A为一向量,则返回以A的元素为根的特征多项式。例如: r=[1,2,3]; p= poly (r) 结果为: p = 1 -6 11 -6 7)、rank (A) 计算矩阵A的秩。例如:r=rank (A) 结果为:r = 2

3.矩阵的四则运算符号: 加 “+” 减 “—” 乘 “*” 除 “/” 共轭转置 “’” 非共轭转置 “.’” 例如:b=[1+2i;3+4i] b = 1.0000 + 2.0000i 3.0000 + 4.0000i b' ans = 1.0000 - 2.0000i 3.0000 - 4.0000i b.' 1.0000 + 2.0000i 3.0000 + 4.0000i

4.矩阵分解: 1)、[q,r]=qr (A) 将矩阵A做正交化分解,使得A=q*r。q为单位矩阵 (unitary matrix),其范数(norm)为1。r为对角化的上三角矩阵。例如: [q,r]=qr(A) q = -0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165 -0.8616 -0.3015 0.4082 r = -8.1240 -9.6011 -11.0782 0 0.9045 1.8091 0 0 -0.0000 norm(q) ans = 1.0000

2)、[L,U]=lu (A) 将矩阵A做对角线分解,使得A=L 2)、[L,U]=lu (A) 将矩阵A做对角线分解,使得A=L*U,L为下三角矩阵(lower triangular matrix),U为上三角矩阵(upper triangular matrix)。 例如: [L,U]=lu(A) L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 0.0000

二、多项式: 多项式是用向量形式来表示,从最右边算起,第一个为0阶系数,第二个为1阶系数,依次类推。例如一个一元三次多项式:4x^3+3x^2+2x+1 用[4 3 2 1]来表示。 1.多项式的运算: 1)、乘:conv指令执行多项式的相乘运算,指令格式为:z=conv (x,y) 例如: x=[1 3 5]; y=[2 4 6]; z=conv(x,y) z = 2 10 28 38 30

如果要对两个以上的多项式进行相乘,可以重复使用conv指令,例如:(x,y同上) conv(conv(x,y),x) ans = 2 16 68 172 284 280 150 2)、分解:与1)相反,用deconv指令,其指令格式为:[z,r]=deconv (x,y)表示x除以 y商为z,余数为r。例如: [z,r]=deconv(z,x) z = 2 4 6 r = 0 0 0 0 0

3)、求根:roots指令用于求多项式的根。例如: fx=[1 3 2]; rootoffx=roots(fx) rootoffx = -2 -1 4)、polyval (p,x) 计算多项式p在x出的值,其中x可以是点或向量或矩阵。 例如: p = [1 -6 11 -6]; x=1; p1=polyval (p,x) 结果为: p1 = 0 x=[1,2,3]; p2=polyval (p,x) 结果为: p2 = 0 0 0

x=A; p3=polyval (p,x) 结果为: p3 = 0 0 0 6 24 60 120 210 336 0 0 0 6 24 60 120 210 336 5)、polyder (p) 求p的微分多项式。 例如: p=[1 -6 11 -6]; dp=polyder(p) dp = 3 -12 11

6)、[r,p,k]=residue (x,y) 求x/y的部分因式分解。若多项式x,y都没有重根,则可把x/y的比值表示为x/y=r1/(s-p1)+r2/ (s-p2)+...+rn/ (s-pn)+ks例如 用residue指令求x/(x^2+3x+2)的部分因式分解: x=[1 0]; y=[1 3 2]; [r,p,k]=residue(x,y) r = 2 -1 p = -2 k = [ ]

当输入三个参数 r,p,k 时,该函数又会生成原来的函数。例如: ?[x,y]=residue(r,p,k) x = 1 0 y = 1 3 2

三 符号变量、符号表达式、抽象函数: 函数sym用于生成符号变量和符号表达式,如: x=sym(‘x’) a=sym(‘alpha’)分别创建变量x, alpha f=sym(‘a*x^2+b*x+c’)创建变量表达式f ,但要注意此式并没有自动创建变量a, b, c, x。可以用函数syms对多个变量同时定义,如 : syms a b c x 函数sym也可以用来表示确定的函数,如 f=sym (‘f(x)’) 生成函数f (x) 。

四 常见符号计算: 1.微分:diff是求微分最常用的函数。其输入参数既可以是函数表达式,也可以是符号矩阵。Diff (f, x, n)表示对f关于x求n阶导数。例如: 1).下面程序段将生成表达式sin (ax), 并分别对其中的x和a求导。 ?syms a x ?f=sin(a*x); ?df=diff(f,x) df = cos(a*x)*a ?dfa=diff(f,a) dfa = cos(a*x)*x

2)、若输入参数为矩阵,将对矩阵中的每个元素求导。 ?syms a x ?A=[-sin(a*x),sin(a*x);cos(a*x),cos(a*x)] A = [ -sin(a*x), sin(a*x)] [ cos(a*x), cos(a*x)] ?dy=diff(A,x) dy = [ -cos(a*x)*a, cos(a*x)*a] [ -sin(a*x)*a, -sin(a*x)*a]

3)、可用函数jacobian来计算Jacobi矩阵。 ?syms r l f ?x=r*cos(l)*cos(f); ?y=r*cos(l)*sin(f); ?z=r*sin(l); ?J=jacobian([x;y;z],[r l f]) J = [ cos(l)*cos(f), -r*sin(l)*cos(f), -r*cos(l)*sin(f)] [ cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f)] [ sin(l), r*cos(l), 0 ]

2.积分:用函数int来求符号表达式的积分。命令格式为: int (f, r, x0, x1)其中f为所要积分的表达式,r为积分变量,若为定积分,则x0,x1为积分上下限。例: ?sym x; ?sym k real ?f=exp(-(k*x)^2) f = exp(-k^2*x^2) ?int(f,x,-inf,inf) ans = signum(k)/k*pi^(1/2)

3.级数求和:函数用于对符号表达式求和。例: ?syms k; ?s1=symsum(1/k^2,1,inf) s1 = 1/6*pi^2

4.极限:用函数limit来求表达式的极限。 数学表达式 命令格式 Limit (f ),或limit (f , x ) Limit (f , x , a) , 或 limit (f , a ) Limit (f , x , a , ‘left’) Limit (f , x , a , ‘right’)

5.化简: 1)、collect (f ) 将表达式中相同次幂的项合并,也可以再输入一个参数指定以哪个变量的幂次合并。 2)、expand ( f ) 将表达式展开。 3)、horner ( f ) 将表达式转换为嵌套格式。 4)、factor ( f ) 将表达式分解因式,并且分解后的多项式的所有系数都为有理数。 5)、simplify ( f ) 利用函数规则对表达式进行化简。

MATLAB的程序设计

1 脚本文件和函数文件 M文件有两种形式 :脚本文件(Script File)和函数文件(Function File )。这两种文件的扩展名,均为“ . m” 。 1.1 M脚本文件 对于一些比较简单的问题 ,在指令窗中直接输入指令计算 。 对于复杂计算,采用脚本文件(Script file)最为合适 。 MATLAB只是按文件所写的指令执行 。 M脚本文件的特点是: 脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)MATLAB指令集合。 脚本文件运行后 ,所产生的所有变量都驻留在 MATLAB基本工作空间(Base workspace)中。只要用户不使用清除指令(clear), MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。

1 脚本文件和函数文件(续1) 1.2 M函数文件 与脚本文件不同 ,函数文件犹如一个“黑箱”,把一些数据送进并经加工处理,再把结果送出来。 MATLAB提供的函数指令大部分都是由函数文件定义的。 M函数文件的特点是: 从形式上看 ,与脚本文件不同 ,函数文件的笫一行总是以 “function”引导的“函数申明行”。 从运行上看 ,与脚本文件运行不同 ,每当函数文件运行, MATLAB就会专门为它开辟一个临时工作空间,称为函数工作空间( Function workspace) 。当执行文件最后一条指令时 ,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。 MATLAB允许使用比 “标称数目 ”较少的输入输出宗量,实现对函数的调用 。

1 脚本文件和函数文件(续2) 1.3 M文件的一般结构 由于从结构上看 ,脚本文件只是比函数文件少一个“函数申明行”,所以只须描述清楚函数文件的结构 。 典型 M函数文件的结构如下 : 函数申明行:位于函数文件的首行,以关键字 functio 开头,函数名以及函数的输入输出宗量都在这一行被定义。 笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供lookfor关键词查询和 help在线帮助使用 。 在线帮助文本区 :笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。 编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者和日期等 。 函数体:为清晰起见,它与前面的注释以“空”行相隔。

2 函数调用和参数传递 2.1 局部变量和全局变量 局部(Local)变量:它存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身 。 全局(Global)变量:通过 global 指令,MATLAB也允许几个不同的函数空间以及基本工作空间共享同一个变量,这种被共享的变量称为全局变量。 2.2 函数调用 在MATLAB中,调用函数的常用形式是: [输出参数1,输出参数2,…] = 函数名(输入参数1,输入参数2, …) 函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己 (递归调用)。

2 函数调用和参数传递(续) 2.3 参数传递 MATLAB在函数调用上有一个与众不同之处 :函数所传递的参数具有可调性 。 2 函数调用和参数传递(续) 2.3 参数传递 MATLAB在函数调用上有一个与众不同之处 :函数所传递的参数具有可调性 。 传递参数数目的可调性来源于如下两个MATLAB永久变量: 函数体内的 nargin 给出调用该函数时的输入参数数目。 函数体内的 nargout 给出调用该函数时的输出参数数目。 只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。 (参考 : circle .m,am1.m) 值得注意:nargin、 nargout 本身都是函数,不是变量,所以用户不能赋值,也不能显示。 “变长度”输入输出宗量:varargin 、 varrgout。具有接受 “任意多输入” 、返回“任意多输出”的能力 。 跨空间变量传递:evalin。

2.3 MATLAB的程序结构和控制流 2.3.1 程序结构 顺序结构 循环结构: MATLAB提供两种循环方式。 2.3.1 程序结构 顺序结构 循环结构: MATLAB提供两种循环方式。 for—end 循环和while---end循环。 分支结构: if—else—end 。 switch---case 结构。 try---catch 结构。 2.3.2 程序流控制 常用指令:return,echo,input,pause,keyboard,break。 警示指令:error, warning 。

2.3 MATLAB的程序结构和控制流(续) 2.3.3 图形用户界面(GUI)编程 现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。(面向对象编程) MATLAB能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和 Callback 的编写,就能够满足大多数用户的需求。 控件的 Callback 属性: Callback 属性的取值是字符串,可以是某个M文件名或一小段MATLAB语句。当用户激活控件对象(例如 :在控件对象图标上单击鼠标左键 )时,应用程序就运行 Callback 属性定义的子程序。 菜单的 Callback 属性: Callback 属性的取值是字符串,可以是某个M文件名或一小段MATLAB语句。当用户激活菜单对象时,若没有子菜单就运行 Callback 属性定义的子程序。若有,先运行 Callback 属性定义的子程序,再显示子菜单。

2.4 M文件的调试 编写 M文件时,错误(Bug)在所难免。错误有两种:语法(Syntax)错误和运行(Run-time)错误。 语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。 运行错误是算法本身引起的,发生在运行过程中。相对语法错误而言,运行错误较难处理 。尤其是M函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。 有两种调试方法:直接调试法和工具调试法。

2.4 M文件的调试(续1) 直接调试法:可以用下面方法发现某些运行错误。 在M文件中,将某些语句后面的分号去掉, 迫使M文件输出一些中间计算结果,以便发现可能的错误。 在适当的位置,添加显示某些关键变量值的语句(包括使用 disp 在内)。 利用 echo 指令,使运行时在屏幕上逐行显示文件内容。echo on 能显示M脚本文件;echo FunNsme on 能显示名为FunNsme 的M函数文件。 在原M脚本或函数文件的适当位置,增添指令 keyboard 。 keyboard 语句可以设置程序的断点 。 通过将原M函数文件的函数申明行注释掉,可使一个中间变量难于观察的M函数文件变为一个所有变量都保留在基本工作空间中的M脚本文件。