数学软件 Matlab —— 编程基础(脚本文件/函数文件).

Slides:



Advertisements
Similar presentations
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
Advertisements

第3章 MATLAB程序设计 3.1 M文件 3.2 程序控制结构 3.3 函数文件 3.4 程序举例 3.5 程序调试
Tool Command Language --11级ACM班 金天行.
四种命题 2 垂直.
Oracle数据库 Oracle 子程序.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
C#程序设计基础 $5 流程控制.
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
第3章 C语言的基本语句 和程序结构设计.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
走进编程 程序的顺序结构(二).
辅导课程六.
第五讲  Matlab的程序设计 —— Matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易, 是Matlab重要组成部分。要充分体现和发挥Matlab的能力,必 须掌握Matlab程序设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
第二章 Java语言基础.
数学软件 西南科技大学网络教育系列课程 数学软件 第10讲 MATLAB程序设计 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
第2章 MATLAB程序设计 编者.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
第三章 M文件设计  命令文件(脚本式) 变量、表达式、运算符 程序设计中的流程控制 函数文件的编写.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
第二讲 MATLAB程序设计.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
第四章 MATLAB程序设计基础 matlab的工作方式:交互式;M文件方式。
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
College of Computer Science & Technology
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
学习目标 1、了解基本运算符 2、运算符优先级.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基本语法 讲师:复凡.
Python 环境搭建 基于Anaconda和VSCode.
3.13 选择结构程序设计初步.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
鸡兔同笼(续) ——选择结构.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
第三讲 程序设计准备知识 一、程序编辑器.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
§4.5 最大公因式的矩阵求法( Ⅱ ).
顺序结构程序设计 ——关于“字符串”和数值.
考察点:switch\while\for System.in\Scanner char vs int
1.4 M文件与程序设计 文件的操作 命令文件 M函数文件 程序设计语句.
编译原理实践 6.程序设计语言PL/0.
第二次课后作业答案 函数式编程和逻辑式编程
Presentation transcript:

数学软件 Matlab —— 编程基础(脚本文件/函数文件)

本讲主要内容 M 文件 基本运算:算术、关系、逻辑 简单的输入输出 控制结构:顺序、选择、循环 函数文件

Matlab 编程 Matlab 编程 Matlab 作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算能力和丰富的绘图功能,同时也可以与 C、FORTRAN 等高级语言一样进行程序设计 利用 Matlab 的程序控制功能,将相关 Matlab 命令编成程序存储在一个文件中(M 文件),然后在命令窗口中运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕 在 Matlab 程序设计中,要充分利用 Matlab 数据结构的特点,提高编程效率

M 文件 M 文件介绍 M 文件分类(根据调用方式的不同) 用 Matlab 语言编写的程序称为 M 文件 M 文件以 .m 为扩展名 Script:脚本文件/命令文件 Function:函数文件 可以直接运行的M文件

M 文件 M 文件的创建的与编辑 新建一个 M 文件 打开已有的 M 文件 M 文件是文本文件,可以用任何文本编辑器来建立和编辑,通常使用 Matlab 自带的 M 文件编辑器 新建一个 M 文件 菜单操作 ( File  New  M-File ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 打开已有的 M 文件 菜单操作 ( File  Open ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 双击 M 文件

编程示例 例:编写M文件,将华氏温度转化为摄氏温度: 新建一个 M 文件 f2c.m,内容如下: clear; % 清除当前工作空间中的所有变量 f=input('请输入一个华氏温度:'); c=5*(f-32)/9; fprintf('对应的摄氏温度是:%f\n',c); f2c.m 在命令窗口中输入 f2c,即可执行该 M 文件 M文件运行所产生的变量都驻留在 Matlab 当前工作空间 百分号是注释符 M文件必须在当前工作目录下才能运行

本讲主要内容 M 文件 基本运算:算术(略)、关系、逻辑 简单的输入输出 控制结构:顺序、选择、循环 函数文件

关系运算 关系运算:比较大小 > 大于 >= 大于等于 == 等于 < 小于 <= 小于等于 ~= 不等于 比较大小,如果结论是 真 则返回 1 ,否则返回 0 注意 = = 与 = 的区别 可以对两个同样大小的数组进行比较运算,即对应分量进行比较,结果为一个同样大小的0-1数组 也可以对一个数组和一个标量进行比较运算,此时标量和数组中的每一个元素极限比较,结果也是一个0-1数组

关系运算举例 例: 2+2==4 x=pi^2<8 A=[1 3 5; 2 0 6] B=[3 1 0; 2 4 6] A>=B Matlab演示

逻辑运算 逻辑运算 例: & 逻辑与 | 逻辑或 ~ 逻辑非 and(x,y) 与 or(x,y) 或 xor(x,y) 异或 not(x) && 与(短格式) || 或(短格式) Matlab演示 注意 &,| 与 &&,|| 的区别 例: x=5; 3<x<8 % ERROR 3<x & x<8

逻辑运算 在 Matlab 中,0 表示 “假”,非零表示 “真” 运算法则 运算对象 与 或 非 异或 A B A&B A|B ~A Xor(A,B) 1 Matlab演示 在 Matlab 中,0 表示 “假”,非零表示 “真”

逻辑运算 逻辑运算函数:all、any all(x) % 逻辑与的推广 如果向量 X 中所有元素都非零,则返回 1,否则返回 0 any(x) % 逻辑或的推广 如果向量 X 中存在非零元素,则返回 1,否则返回 0 若 x 为矩阵,则 any 和 all 按列运算,返回一个 0-1 向量 Matlab演示 例: A=[61 83 58 94 75]; % 学生成绩 all(A>=60) % 全部及格否? any(A>=90) % 有没有90分以上的?

高 低 运算优先级 小括号 幂,点幂 正号,负号,逻辑非 乘,除,点乘,点除 加,减 冒号运算 关系运算 & | && || Matlab演示 低

本讲主要内容 M 文件 基本运算:算术、关系、逻辑 简单的输入输出 控制结构:顺序、选择、循环 函数文件

input 数据的输入:input x=input(提示信息) 例: 例: 其中 提示信息 为字符串, x=input('Please input x: ') 例: name=input('What''s your name? ') 输入字符串时必须带单引号 单引号的输出:两个连续的单引号

disp 数据的输出:disp disp(x) 例: 输出变量 x 的值,x 可以是数值矩阵或字符串 一次只能输出一个变量的值 x=pi; B=[1 2 3; 4 5 6; 7 8 9]; disp(x) disp(B) str='Hello, Tom!'; disp(str)

本讲主要内容 M 文件 基本运算:算术、关系、逻辑 简单的输入输出 控制结构:顺序、选择、循环 函数文件

M文件控制流 程序控制结构有三种: 顺序结构、选择结构和循环结构 顺序结构 任何复杂的程序都由这三种基本结构组成 按排列顺序依次执行各条语句,直到程序的最后 这是最简单的一种程序结构,一般涉及数据的输入输出、数据的计算或处理等

选择结构 选择结构 根据给定的条件成立或不成立,分别执行不同的语句 选择结构的实现 if 语句 switch 语句

if 条件语句 例: if 条件表达式 end 例: if 条件表达式 else end 单分支 if 语句 if score>=60 语句组 end if score>=60 mark='passed'; end 双分支 if 语句 例: if a>b x=a; else x=b; end if 条件表达式 语句组1 else 语句组2 end

if 条件语句 例:计算一个数符号 if 条件表达式1 elseif 条件表达式2 elseif 条件表达式m else end 语句组1 elseif 条件表达式2 语句组2 ... ... elseif 条件表达式m 语句组m else 语句组 end if x>0 sign_of_x=1; elseif x<0 sign_of_x=-1; elseif x==0 sign_of_x=0; else disp('I dont know!') end

循环结构 循环结构 根据给定的条件,重复执行指定的语句 循环结构的实现 for 语句 while 语句

for 循环 for 循环变量 = 取值列表 end for 循环 循环体 取值列表 通常是一个向量 将取值列表中的值依次赋给循环变量,直到全部取完, 循环结束 不要在循环体内改变循环变量的值 为提高代码的运行效率,应尽可能提高代码的向量化程度

for 循环 例1: 例2:如何输出下列矩阵?(程序见下页!) 已知 ,当 n=100 时,求 y 的值 y=0; n=100; for k=1:n y=y+1/(2*k-1); end y ex4for01.m 例2:如何输出下列矩阵?(程序见下页!) A = 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2

for 循环 for i=1:5 for j=1:5 if i == j A(i,j) = 2; elseif abs(i-j) == 1 end A ex4for02.m

while 循环 假 while 条件表达式 end 真 while 循环 表达式 循环体语句 当条件表达式的值为真(非 0)时, 执行循环体语句, 直到条件表达式的值是假为止 循环体语句 循环语句可以嵌套使用 如果预先知道循环的次数,可采用 for 循环 如果预先无法确定循环次数,则可使用 while 循环

while 循环 例:数论中的一个有趣问题:3n+1 问题 任取一个正整数,如果是偶数,用 2 除,如果是奇数,用 3 乘再加 1,反复这个过程,直到所得到的数为 1。 问:是否存在使该过程永不中止的整数? n=input('请输入一个正整数 n: '); x=n; while x>1 if mod(x,2)==0 x=x/2; else x=3*x+1; end fprintf(' x=%d \n', x); ex4while01.m

循环的终止 循环的中断 break continue break 和 continue 通常需要与 if 语句配合使用 跳出循环体,终止循环 结束本轮循环,执行下一轮循环 break 和 continue 通常需要与 if 语句配合使用 若想强行终止运行中的程序,可以使用 Ctrl+c

Pause与return用法 程序暂停 pause % 暂停程序的运行,按任意键后继续 pause(x) % 暂停程序 x 秒 返回/退出 pause off 屏蔽程序中所有 pause 的作用 pause on 打开 pause 的作用 返回/退出 return 退出正在运行的脚本或函数,通常用在函数文件中

本讲主要内容 M 文件 基本运算:算术、关系、逻辑 简单的输入输出 控制结构:顺序、选择、循环 函数文件

Matlab 另一类编程:函数文件 M 文件根据调用方式的不同可以分为两类 Script:脚本文件,直接输入文件名即可运行 Function:函数文件 供其它M文件调用,通常带输入参数和输出参数

函数文件 函数文件一般格式 function 输出形参列表=函数名(输入形参列表) % 注释说明部分 (可选) 函数体语句 第一行为引导行,表示该 M文件是函数文件 函数名的命名规则与变量名相同 ( 必须以字母开头 ) 当输出形参多于一个时,用方括号括起来 函数必须是一个单独的 M文件 函数文件的文件名必须与函数名一致

编程示例 例:将华氏温度转化为摄氏温度: 脚本文件 (f2cs.m): clear; f=input('Please input f:'); c=5*(f-32)/9 f2cs.m 函数文件(f2cf.m): function c=f2cf(f) c=5*(f-32)/9; end f2cf.m

函数文件举例 例:交换两个变量的值 myswap.m function [a,b] = myswap(x,y) % swap x and y a = y; b = x; myswap.m 函数可以有多个输入参数和多个输出参数 也可以没有输入参数或输出参数

函数文件举例 例:打印杨辉三角形 printyh.m function printyh(n) % 打印杨辉三角形, 本函数没有输出参数 yh=1; disp(yh); if n==1, return; end yh=[1,1]; disp(yh); for k=3:n yh_old=yh; k2=ceil(k/2); for i=2:k2 yh(i)=yh_old(i-1)+yh_old(i); end yh(k2+1:k)=yh(k-k2:-1:1); disp(yh); printyh.m

函数调用 函数调用的一般格式 输出实参列表=函数名(输入实参列表) 函数调用时,实参的顺序应与函数定义时形参的顺序一致 实参与形参之间的结合是通过值传递实现的 函数可以嵌套调用,即一个函数可以被其它函数调用, 甚至可以被它自身调用,此时称为递归调用 函数所传递的参数具有可调性,Matlab 用两个永久变量 nargin 和 nargout 分别记录调用该函数时的输入实参 和输出实参的个数

教材 P35 的习题 1:如何用程序方式建立如下的矩阵? 上机作业 教材 P35 的习题 1:如何用程序方式建立如下的矩阵? Matlab 演示