第四章 MATLAB程序设计基础 matlab的工作方式:交互式;M文件方式。

Slides:



Advertisements
Similar presentations
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
Advertisements

第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
数学软件 Matlab —— 编程基础(脚本文件/函数文件).
MATLAB小结、 经典迭代法、CG.
Oracle数据库 Oracle 子程序.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
C#程序设计基础 $5 流程控制.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
Matlab M檔案 方煒 台大生機系.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
走进编程 程序的顺序结构(二).
辅导课程六.
第五讲  Matlab的程序设计 —— Matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易, 是Matlab重要组成部分。要充分体现和发挥Matlab的能力,必 须掌握Matlab程序设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第二章 Java语言基础.
数学软件 西南科技大学网络教育系列课程 数学软件 第10讲 MATLAB程序设计 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
SOA – Experiment 2: Query Classification Web Service
第2章 MATLAB程序设计 编者.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第三章 M文件设计  命令文件(脚本式) 变量、表达式、运算符 程序设计中的流程控制 函数文件的编写.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
Expressions & Statements
姚金宇 MIT SCHEME 使用说明 姚金宇
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第二讲 MATLAB程序设计.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
College of Computer Science & Technology
1.2基本算法语句 1.2.3循环语句.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第7章 模板 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
WEB程序设计技术 数据库操作.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
第三讲 程序设计准备知识 一、程序编辑器.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
§4.5 最大公因式的矩阵求法( Ⅱ ).
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
考察点:switch\while\for System.in\Scanner char vs int
1.4 M文件与程序设计 文件的操作 命令文件 M函数文件 程序设计语句.
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
30 歲前 一定要做的21件事.
第二次课后作业答案 函数式编程和逻辑式编程
Presentation transcript:

第四章 MATLAB程序设计基础 matlab的工作方式:交互式;M文件方式。 M文件的作用:在command window中输入已编辑保存的M文件名或函数,则自动搜索该文件,找到则按规定的计算任务以解释的方式逐一执行语句。 2019/4/26 电子教研室 qmw_qyq@163.com

4.1 M文件的创建 创建M文件 2019/4/26 电子教研室 qmw_qyq@163.com

4.2非函数文件(脚本文件) 一般来说,命令文件用于把很多需要在命令窗口输入的命令放在一起,以便于修改; 由于命令文件没有输入和输出参数,只是一些命令行的组合,所以命令文件比函数文件更简单。命令文件可对工作空间中的变量进行操作,也可生成新的变量。即使命令文件运行结束,其运行过程中所产生的变量仍保留在工作空间中,直到关闭matlab或用相关删除命令。 例: x=0:pi/100:2*pi; y1=cos(x); y2=sin(x); plot(y1,y2); end 2019/4/26 电子教研室 qmw_qyq@163.com

4.3函数文件 一、函数文件的格式 函数文件一般用于把许多重复的程序段封装起来,使程序更加简洁。 例: function y=mymean(x); %该程序用于计算矢量中元素的平均值 %x为输入参数,代表输入的矢量 %y为输出参数,代表矢量中元素的平均值 %如果输入不是向量,则返回错误信息 [m,n]=size(x); %判断输入是否为矢量 if(~((m==1)|(n==1)|(m==1&n==1))) %如果输入不是矢量,显示出错信息 error('输入x必须是向量'); end y=sum(x)/length(x); 2019/4/26 电子教研室 qmw_qyq@163.com

1、函数定义 function y=ymean(x) function [y1,y2,…]=FN(x1,x2,…) 2、帮助文本 3、函数体 4、注释 二、函数文件参数个数的检查 nargin nargout确定函数被调用时,输入、输出参数的个数,函数体中可以根据输入参数个数的不同而执行不同的操作。Nargchk用于检查输入函数个数是否正确 2019/4/26 电子教研室 qmw_qyq@163.com

例: function c=testarg(a,b) if(nargin= =1) c=a.^2; elseif(nargin= =2) c=a+b; end 注意:可以用任何编辑器编写m文件 当编写函数文件时,其文件名必须与函数名一致 2019/4/26 电子教研室 qmw_qyq@163.com

例:用命令文件和函数文件完成相同的任务:求所有小于2000且为2的整数次幂的正整数。 A:用命令文件的方式 %求小于2000且为2的整数次幂的正整数 f(1)=2; k=1; while f(k)<1000 f(k+1)=f(k)*2; k=k+1; end f,k 2019/4/26 电子教研室 qmw_qyq@163.com

%求小于任何正整数且为2的整数次幂的正整数 %c=tt(n),n可取任意正整数 f(1)=2; k=1; while f(k)<n/2 B、用函数文件的方式实现 function f=tt(n) %求小于任何正整数且为2的整数次幂的正整数 %c=tt(n),n可取任意正整数 f(1)=2; k=1; while f(k)<n/2 f(k+1)=f(k)*2; k=k+1; end f 2019/4/26 电子教研室 qmw_qyq@163.com

4.4、全局变量和局部变量 一、什么是全局与局部变量? 二、全局变量的定义 global BEG END Example:function s=mean1 global k=BEG:END; s=sum(k) 调用如下: global BEG END; BEG=1;END=10; S1=mean1; 2019/4/26 电子教研室 qmw_qyq@163.com

funciton all=weight_add(x,y) %add two variable with different weight. 例: funciton all=weight_add(x,y) %add two variable with different weight. global alpha beta all=alpha*x+beta*y; 在命令窗口内键入: alpha=1 beta=2 all=weight_add(1,1); 2019/4/26 电子教研室 qmw_qyq@163.com

4.5程序控制流程语句 一、循环控制 1、for循环 调用格式: for t=表达式1:表达式2:表达式3 循环体 end 注意:1)步长可正可负 2)内部允许嵌套,for与end必须配对 3)在循环体内改变t值不影响循环次数,但对表达式有影响 4)若表达式为矩阵则循环列次 2019/4/26 电子教研室 qmw_qyq@163.com

例1:for n=1:5 例2 s=0; for m=1:n for i=1:2:99 r(n,m)=m*n; s=s+i; end end 例3 i=1:3 例4 for I=1:3 例5 a=[1 3 5;2 6 8]] x(I)=I I=2 for I=a I=2 x(I)=I x(I)=a end end end 2019/4/26 电子教研室 qmw_qyq@163.com

2)当表达式计算对象为矩阵时,矩阵的所有值均为真时才执行 2、while循环语句 调用格式 while 表达式 语句体 end 注意:1)while必须与end成对 2)当表达式计算对象为矩阵时,矩阵的所有值均为真时才执行 3)循环量在循环体中增减 2019/4/26 电子教研室 qmw_qyq@163.com

例1:求级数和 s=1+1/2+1/3+…..+1/100 s=0 n=1; while n<=100 s=s+1/n; n=n+1; end 例2:找阶乘超过10100的最小数 n=2; while prod(1:n)<1.e100 2019/4/26 电子教研室 qmw_qyq@163.com

二、条件控制语句 1、if条件语句 matlab中,if条件语句的功能是:如果满足某个条件则执行一条或一组语句,否则就不执行其内部的语句,或者执行else后面的语句。调用格式如下: if condition 或: if condition1 statement statement1 end elseif conditon2 或:if condition statement2 statement1 …………………… else statement2 end end 2019/4/26 电子教研室 qmw_qyq@163.com

注意:1)必须与END配对 2)具有优先顺序性 3)else elseif不是必须的 4)若表达式为矩阵,则每个元素为真才执行 例: if n<0 a=100; else if n=3 a=n; else a=0; end 2019/4/26 电子教研室 qmw_qyq@163.com

一旦num为其中的某个值或字符串时,就执行所对应的指令,没有对应时,则执行otherwise后的语句。 2、SWITCH-CASE 一旦num为其中的某个值或字符串时,就执行所对应的指令,没有对应时,则执行otherwise后的语句。 一般switch-case语句格式为: switch 控制变量(标量或字符串) case n1 command1 case n2 command2 . .otherwise 注意:与END配对 commandn 并行 end 2019/4/26 电子教研室 qmw_qyq@163.com

case –1 disp(‘I love you’); case 0 disp(‘I don’t like you’) 例: Switch input_num case –1 disp(‘I love you’); case 0 disp(‘I don’t like you’) case 1 disp(‘I hate you’) case 2 disp(‘my god’) otherwise disp(‘I don’t know you’) end 2019/4/26 电子教研室 qmw_qyq@163.com

例: Switch k case 1 set(gcf,’color’,’r’); case 2 set(gcf,’color’,’w’); set(gcf,’color’,’y’); otherwise set(gcf,’color’,’g’); end 2019/4/26 电子教研室 qmw_qyq@163.com

if (1+eps)<=1 eps=eps*2 三、转移语句 转移语句用来控制程序流向,在必要时中断循环体或函数的执行并进而执行下面的语句。Matlab提供了两种转移语句:break语句和return语句。 Break语句:一般出现在循环语句中,它表示跳出循环体,即结束循环(它只能退出包含它的最内层循环): 例: eps=1; for num=1:100 eps=eps/2; if (1+eps)<=1 eps=eps*2 break 2019/4/26 电子教研室 qmw_qyq@163.com

return语句:用于中断函数的执行,并返回调用它的上级函数。 end num return语句:用于中断函数的执行,并返回调用它的上级函数。 例: function y=test(x) if(x<0) y=0 return y=1 2019/4/26 电子教研室 qmw_qyq@163.com

4.6 子函数 函数中再定义函数,函数文件中第一行定义的函数为主函数,调用函数名时,调用主函数。 第一行外,其余定义的为子函数。子函数只能被本函数调用。 function [avg,med]=main_function(u) %main n=length(u); avg=mean(u,n); med=median(u,n); 2019/4/26 电子教研室 qmw_qyq@163.com

function a=subf1(v,n) %sub1 a=sum(v)/n; function m=subf2(v,n) %sub2 w=sort(v); if rem(n,2)==1 m=w((n+1)/2); else m=(w(n/2)+w(n/2+1))/2; end 2019/4/26 电子教研室 qmw_qyq@163.com

4.7交互式程序设计 一、常用命令 1、echo:显示命令 2、input:执行过程中输入一行信息 Example: n=input(‘please input n=’) 2^n (1)input(string) (2)input(string,’s’) 将字符串string显示出来,等待用户输入一个字符,并将这个字符串作为函数的返回值,也可在调用的同时将返回值赋给一个变量。 2019/4/26 电子教研室 qmw_qyq@163.com

a=input(‘please input a number:’); for j=1:a x(j)=j*j; end x 例: 编写ask.m文件 a=input(‘please input a number:’); for j=1:a x(j)=j*j; end x y=input(‘please input a string:’,’s’); y 2019/4/26 电子教研室 qmw_qyq@163.com

pause是matlab提供的暂停语句,其功能是在程序执行过程中实现暂停,增加程序的交互性。其使用方法如下: pause(n) 暂停n秒 pause off 这个语句后所有暂停语句无效 pause on 这个语句后暂停语句有效 2019/4/26 电子教研室 qmw_qyq@163.com

启动键盘管理程序,等待输入多行命令,并将键盘输入作为底稿文件处理。 4、keyboard 启动键盘管理程序,等待输入多行命令,并将键盘输入作为底稿文件处理。 例: function y=user(x) keyboard 调用:user k>> k>>x=0:0.01:1; k>>plot(x,user(x)) k>>y=x.^3; k>>return 2019/4/26 电子教研室 qmw_qyq@163.com

二、生成选择菜单 menu函数可生成一个选择式的菜单,使用户能够选择输入。其调用格式为:k=menu(‘menuname’,s1,s2……si),其中k返回调用值,si为字符串(菜单项,最多为32项)。 例:while 1 k=menu('choose a color','red','blue','close'); if k==1 x='red' elseif k==2 x='blue' elseif k==3 break end 2019/4/26 电子教研室 qmw_qyq@163.com

三、建立按钮式演示菜单 Choices函数可以创建一个窗口,由其控制界面及其所对应的功能生成一个演示菜单,调用方法如下: choices(name,header,buttonlabels,callbacks) 例:header = 'Easy Example'; labels = str2mat('Choice 1','Choice 2','Choice 3'); callbacks = str2mat('image(magic(1))','image(magic(2))', ... 'image(magic(3))'); choices('EXAMPLE', header, labels, callbacks); 2019/4/26 电子教研室 qmw_qyq@163.com

4.8错误和警告信息 1、函数err和fprintf 显示出错信息,终止程序的执行 2、warning 用法同上 if(~((m==1)|(n==1)|(m==1&n==1))) %如果输入不是矢量,显示出错信息 error('输入x必须是向量'); end 2、warning 用法同上 2019/4/26 电子教研室 qmw_qyq@163.com

4.9程序优化 1、循环向量化 例如:I=0; n=0:0.01:9.99; for n=0:0.01:9.99 y=cos(n) I=I+1; y(I)=cos(n); end 2019/4/26 电子教研室 qmw_qyq@163.com

clear pack quit/exit save load 2、数组预定维 zeros(m,n) cell struct 3、内存管理 clear pack quit/exit save load 2019/4/26 电子教研室 qmw_qyq@163.com