第三章 M文件设计  命令文件(脚本式) 变量、表达式、运算符 程序设计中的流程控制 函数文件的编写.

Slides:



Advertisements
Similar presentations
冀教版四年级数学上册 本节课我们主要来学习 2 、 3 、 5 的倍数特征,同学们要注意观察 和总结规律,掌握 2 、 3 、 5 的倍 数分别有什么特点,并且能够按 要求找出符合条件的数。
Advertisements

阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
『經』奇大發現 組別:第五組 組員: 曹雅雯 王俞均 葉乃嘉 洪詩盈
第 5 章 中國的都市.
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
数学软件 Matlab —— 编程基础(脚本文件/函数文件).
Tool Command Language --11级ACM班 金天行.
MATLAB小结、 经典迭代法、CG.
古文閱讀 – 像虎伏獸 明 劉基 組員: 5號江依倫 6號江若薇 12號張珉芫 32號蔡燕如.
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
Oracle数据库 Oracle 子程序.
C语言实验 第一课 标题:学号+姓名.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第3章 C语言的基本语句 和程序结构设计.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
Application of Matlab Language
走进编程 程序的顺序结构(二).
第五讲  Matlab的程序设计 —— Matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易, 是Matlab重要组成部分。要充分体现和发挥Matlab的能力,必 须掌握Matlab程序设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
引 言.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
第二章 Java语言基础.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
第2章 MATLAB程序设计 编者.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构.
學這些有什麼好處呢? 為了把資料作更客觀之總結描述或比較多組資料。總而言之,就是要找出一個數能代表整組數據。
姚金宇 MIT SCHEME 使用说明 姚金宇
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第二讲 MATLAB程序设计.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
第四章 MATLAB程序设计基础 matlab的工作方式:交互式;M文件方式。
第三单元 第2课 实验 一元函数的积分 实验目的:掌握matlab求解有关不定积分和定积分的问题,深入理解定积分的概念和几何意义。
第九节 赋值运算符和赋值表达式.
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
学习目标 1、了解基本运算符 2、运算符优先级.
第二章 Java基本语法 讲师:复凡.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基本语法 讲师:复凡.
3.13 选择结构程序设计初步.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
鸡兔同笼(续) ——选择结构.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
第四章 UNIX文件系统.
第三讲 程序设计准备知识 一、程序编辑器.
顺序结构程序设计 ——关于“字符串”和数值.
考察点:switch\while\for System.in\Scanner char vs int
1.4 M文件与程序设计 文件的操作 命令文件 M函数文件 程序设计语句.
编译原理实践 6.程序设计语言PL/0.
第二次课后作业答案 函数式编程和逻辑式编程
Presentation transcript:

第三章 M文件设计  命令文件(脚本式) 变量、表达式、运算符 程序设计中的流程控制 函数文件的编写

M文件分为命令文件和函数文件两种 命令文件(脚本式M文件) 无输入参数,不返回参数 操作工作空间中的数据 对于需要多次执行的一系列命令特别有用 函数文件(函数式M文件) 可输入参数,也可返回参数 函数的变量为局部变量,也可设外部变量。 扩充MATLAB的函数库

最好用程序编辑器编写命令文件。对文件命名, 保存在当前工作目录中. 命令文件——MATLAB的命令序列 需要几行(或几十行)命令才能完成的作业, 最好用程序编辑器编写命令文件。对文件命名, 保存在当前工作目录中. k=0;n=1;f=1;an=1;s=1; while an>0.00002 f= - f; n=n+2; an=1/n; s=s+f*an; k=k+1; end P=4*s

MATLAB的变量和表达式 theta=pi/4 x=sin(theta); P=1+2*x+3*x^2+4*x^3 变量创建常用赋值语句实现 变量名=数据 theta=3.14/4 %将数据赋值给变量名 注意:变量名必须是英文字母打头; 表达式——由变量、运算符、函数、数字组成 表达式创建常用赋值方法实现 变量名=表达式 theta=pi/4 x=sin(theta); P=1+2*x+3*x^2+4*x^3

局部变量和全局变量 局部变量:具有函数内部作用范围 全局变量:可在几个函数和基本工作空间 之间共享,具有全局作用范围 全局变量的声明: global 变量名1 变量名2 … 永久变量 ans; eps; pi; i; j; inf; NaN;

2.关系运算符 1 .算术运算符 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 ~= 不等于   < 小于   <= 小于等于   > 大于   >= 大于等于   == 等于   ~= 不等于 1 .算术运算符 + 加 .+ 点加 - 减 .- 点减 ^ 矩阵幂 .^ 点幂 * 乘 .* 点乘 / 右除 ./ 点右除 \ 左除 .\ 点左除 3.逻辑运算符 & 与 (and) | 或 (or) ~ 非 (not)

条件控制; 循环控制; 错误控制;终止运行控制 条件控制——有选择地运行程序块 1. if / elseif 语句 MATLAB 程序中的流程控制 条件控制; 循环控制; 错误控制;终止运行控制 条件控制——有选择地运行程序块 1. if / elseif 语句 分析下列程序,说明运行结果及原因 clear a=100;b=10; if a<b disp('a<b') %显示字符串a<b else disp('a>b') %显示字符串a>b end

2. Switch / case 语句 clear n=input('input n='); switch mod(n,5) case 0 fprintf('%d 是5的倍数',n) otherwise fprintf('%d 不是5的倍数',n) end 程序运行: input n=44 44 不是5的倍数

1. for循环 语法: for 变量 =初值:步长:终值 n:=10, f(10)=55 n:=44, f(44)=701408733 可执行语句 end 求裴波拉奇数列的第 n 项( n > 2) n=input('input n:='); f(1)=1;f(2)=1; for k=3:n f(k)=f(k-1)+f(k-2); end f(n) n:=10, f(10)=55 n:=44, f(44)=701408733

while循环将循环体中的语句循环执行不定次数。 循环体语句 end 条件表达式一般由变量、数字、逻辑运算、关系运算符和一般运算符组成,以判断循环的进行和停止; 只要表达式的值(逻辑值)结果为正确(非0),循环继续;直到表达式值为0,循环停止。

n=input(‘input n=’); %输入数据 while n~=1 r=rem(n,2); %求n/2的余数 if r = =0 角谷猜想. 对任一自然数n,按如下法则进行运算:若n为偶数, 则将n除2;若n为奇数,则将n乘3加1。将运算结果按 上面法则继续运算, 重复若干次后计算结果最终是1. n=input(‘input n=’); %输入数据 while n~=1 r=rem(n,2); %求n/2的余数 if r = =0 n=n/2 %第一种操作 else n=3*n+1 %第二种操作 end n=5 16, 8, 4, 2, 1

3. continue 命令 通常用于for或while循环语句中,与if语句一起使用,达到跳过本次循环,去执行下一轮循环的目的 分析下列程序,说明运行结果及原因 a=3;b=6; for i=1:3 b=b+1; if i<2 continue %当if条件满足时不再执行后面语句 end a=a+2 %当i<2时不执行该语句 运行结果: a=5 a=7

4. break命令 通常用于for或while循环语句中,与if语句一起使用,中止本次循环,跳出最内层循环 分析下列程序,说明运行结果及原因 a=3;b=6; for i=1:3 b=b+1; if i>2 break %当if条件满足时不再执行循环 end a=a+2 运行结果: a=5 a=7

程序流控制语句 return指令 终止当前的命令序列,把控制返回到调用函数或键盘。 pause 使程序运行停止,等待用户按任意键继续。 break 用于中断for或while循环的执行。当中断后,程序退到本级循环以外的下一条语句执行。 input 提示用户从键盘输入数值、字符串或表达式,并接受输入。

函数文件编写 函数文件名必须以英文字母开头,并以 .m 为后缀,如f1.m、f2.m、g1.m、g2.m、…… 函数文件格式 function 返回变量列表=函数名(输入变量列表) %注解说明 输入变量nargin格式检测,输出变量 nargout检测 函数体 注意:函数名应该和文件名相同

创建希尔伯特矩阵 H=(hij)m×n , hij = 1/(i+j-1). 文件包括帮助信息,基本功能,调用方式说明; 例 编写函数文件myhilb.m,功能如下: 创建希尔伯特矩阵 H=(hij)m×n , hij = 1/(i+j-1). 文件包括帮助信息,基本功能,调用方式说明; 调用只有一个输入参数,则自动生成方阵; 检测输入变量个数,有错误则给出错误信息 调用时没用返回变量,则仅显示矩阵 myhilb(3) 1/3 1/4 1/5 1/4 1/5 1/6 1/5 1/6 1/7

function A=myhilb(n,m) %A=myhilb(n,m)生成一个n*m阶希尔伯特矩阵 %A=myhilb(n)生成一个n*n阶希尔伯特矩阵 %myhilb(n,m)显示一个n*m阶希尔伯特矩阵 if nargin = =1,m=n; elseif nargin = =0 | nargin>2, error('wrong number of input argments'); end for i=1:n for j=1:m A1(i,j)=1/(i+j-1); %计算矩阵元素 if nargout = =1 A=A1; %将数据传递给输出变量 elseif nargout = =0 format rat,disp(A1); %以分数形式显示矩阵

在自变量 t 分别取值为1,2,3,4,5时数值积分。 例5.6.1 计算积分上限函数 在自变量 t 分别取值为1,2,3,4,5时数值积分。 f=inline('x.^3./(exp(x)-1)'); q(1)=quad(f,eps,1); for k=1:4 q(k+1)=q(k)+quad(f,k,k+1); end q q = 0.2248 1.1763 2.5522 3.8771 4.8999

MatLab在执行程序有错时会自动终止运行,并在其命令窗口(Matlab Command Windows)中给出相应错误的提示信息 同时MATLAB的编辑器(Editor)具有程序调试功能,可用调试命令用来检查程序的正确性 单步执行 断点间执行 终止调试

调试程序步骤: (1)在程序可疑处设置断点; (2)执行程序; (3)检查程序运行至断点处变量当前值 (4)在程序中一步步执行 (5)结束调试状态。 (6)取消断点。 执行程序之后,程序会停在断点处。并出现箭头.同时调试工具栏由灰色变为深色

MATLAB编程技巧 1.矢量化——尽可能使用向量和矩阵操作 例 求 向量运算 t=cputime;s=0; t=cputime; n=1:100000; s=sum(1./2.^n+1./3.^n); cputime-t ans = 0.2970 t=cputime;s=0; for i=1:100000 s=s+(1/2^i+1/3^i); end cputime-t ans = 0.8750

2.预分配内存空间 例 生成一个 5×10000 的 Hilbert 矩阵,该矩阵的定义是其第 i 行第 j 列元素为 hi,j=1/(i+j-1)。 >> tic H=zeros(5,10000); for i=1:5 for j=1:10000 H(i,j)=1/(i+j-1); end end toc elapsed_time = 1.0400 >> tic for i=1:5 for j=1:10000 H(i,j)=1/(i+j-1); end end toc elapsed_time = 8.6800