Matlab程序设计说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
一些测试函数
测试函数
isfinite(x) isinf(x) isnan(x) isreal(x) isstr(x) isempty(x)
若 x 为有限值,返回真值 1 若 x 为无穷大,返回真值 1 若 x 为不定值,返回真值 1 若 x 无虚部,返回真值 1 若 x 为一个字符串,返回真值 1 若 x 为空,返回真值 1
例: >> fprintf(' Today is Monday\n')
可以没有输出变量
21
pause
暂停:pause
pause 或 pause(n) 其中 n 是暂停的时间,以秒为单位 若缺省,则将暂停程序,直到用户按任意键后继续
pause off 屏蔽程序中所有 pause 的作用 pause on 打开 pause 的作用
end
表达式 expr 可以是行向量,也可以是矩阵
可以直接运行的M文件
4
M 文件
M 文件的创建的与编辑
M 文件是文本文件,可以用任何文本编辑器来建立和编辑, 通常使用 Matlab 自带的 M 文件编辑器
新建一个 M 文件
菜单操作 ( File New M-File ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 )
otherwise 指令可以不出现
switch 后面的表达式 expression 的值可以是一个 标量或字符串
29
switch 语句
例2 某商场对顾客所购买的商品实行打折销售,标 准如下(商品价格用price来表示):
➢ price<200 ➢ 200=<price<500 ➢ 500=<price<1000 ➢ 1000=<price<2500 ➢ 2500=<price<5000 ➢ 5000=<price
A & B 等价于 and(A,B) A | B 等价于 or(A,B) ~ A 等价于 not(A)
&&
与 (Short-circuit AND)
||
或 (Short-circuit OR)
11
逻辑运算表
运算对象 与

A
B A&B A|B
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1

异或
~A Xor(A,B)
3
M 文件
M 文件介绍
用 Matlab 语言编写的程序称为 M 文件 M 文件以 .m 为扩展名 M 文件是由若干 Matlab 命令组合在一起构成的,它可 以完成某些操作,也可以实现某种算法
M 文件分类(根据调用方式的不同)
Script:脚本文件/命令文件 Function:函数文件
case num2cell(5:9) %价格大于等于500小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500小于5000
rate=10/100;
otherwise
数学实验
数学软件 Matlab
Matlab 编程基础
1
本讲主要内容
M 文件 Matlab 编程基础
算术运算、关系运算、逻辑运算 控制结构:顺序结构、选择结构、循环结构
2
Matlab 编程入门
Matlab 编程简介
Matlab 作为一种广泛应用于科学计算的工具软件,不仅 具有强大的数值计算能力和丰富的绘图功能,同时也可以 与 C、FORTRAN 等高级语言一样进行程序设计 利用 Matlab 的程序控制功能,将相关 Matlab 命令编成 程序存储在一个文件中(M 文件),然后在命令窗口中运 行该文件,Matlab 就会自动依次执行文件中的命令,直到 全部命令执行完毕 在 Matlab 程序设计中,要充分利用 Matlab 数据结构的 特点,提高编程效率
文件的命名规则与变量相同!
在命令窗口输入 myprg1,
即可执行该 M 文件Baidu Nhomakorabea
6
编程示例
例:编写M文件,将华氏温度转化为摄氏温度: c 5 ( f 32)
9
新建一个 M 文件 f2c.m,内容如下:
clear; % 清除当前工作空间中的所有变量 f=input('Please input f:'); c=5*(f-32)/9; fprintf('c=%g\n',c);
\n ( 换行 ) \t ( 制表符 ) \b ( 退格 )
\\ ( 反斜杆 ) %% ( 百分号 )
20
fprintf
例: >> a='Hello';
>> b=2.4; >> c=100*pi; >> fprintf('a=%s, b=%f, c=%e\n',a,b,c)
format 中的格式字符串要与输出变量一一对应
其中 提示信息 为字符串, 该命令要求用户输入 A 的值 (可以是数或字符串)
例: A=input('Please input A: ')
例: name=input('What''s your name? ')
输入字符串时必须带单引号 单引号的输出:两个连续的单引号
18
disp
数据的输出:disp
end
28
switch 语句
关于 switch 语句的几点注解:
Matlab 首先计算 expression 的值,然后将它依次与各 个 case 指令后的检测值进行比较,当比较结果为真时, 就执行相应的语句组,然后跳出 switch 结构 如果所有的比较结果都为假,则执行 otherwise 后 面的语句组,然后跳出 switch 结构
在命令窗口中输入 f2c,即可执行该 M 文件
M文件运行所产生的变量都驻留在 Matlab 当前工作空间 百分号是注释符 M文件必须在当前工作目录下才能运行
7
本讲主要内容
M 文件 Matlab 编程基础
算术运算、关系运算、逻辑运算 控制结构:顺序结构、选择结构、循环结构
8
关系运算
关系运算符
< 小于 > 大于 == 等于
<= 小于等于 >= 大于等于 ~= 不等于
比较大小,如果结论是 真 则返回 1 ,否则返回 0
注意 = = 与 = 的区别
关系操作符可以比较两个同样大小的数组,或用来 比较一个数组和一个标量,在后一种情况,标量和数 组中的每一个元素相比较,比较结果与数组大小一样
编程方式:新建一个 M 文 件 myprg1.m,内容如下:
u=[0:pi/60:2*pi]; v=[0:pi/60:pi]; [U,V]=meshgrid(u,v); R=3; X=R*sin(V).*cos(U); Y=R*sin(V).*sin(U); Z=R*cos(V); mesh(X,Y,Z); axis equal;
disp(X)
输出变量 X 的值,X 可以是数值矩阵或字符串
一次只能输出一个变量
例: >> A='Hello, Tom!';
>> disp(A) >> B=[1 2 3; 4 5 6; 7 8 9]; >> disp(B)
19
fprintf
数据的格式化输出:fprintf
fprintf(fid,format,variables)
disp(abs(c)-abs(‘0’)); else
disp(c); end
27
switch 语句
根据表达式的不同取值,分别执行不同的语句
switch expr(表达式) case value1(表达式1) 语句组1 case value2(表达式2) 语句组2 ... ... case valuem(表达式m) 语句组m otherwise 语句组
按指定的格式将变量的值输出到屏幕或指定的文件 fid 为文件句柄,若缺省,则输出到屏幕上 format 用来指定数据输出时采用的格式,包含:
普通字符串、格式字符串、转义字符
▪ %d (整数 ) ▪ %e (实数:科学计数法形式 ) ▪ %f (实数:小数形式) ▪ %g (由系统自动选取上述两种格式之一) ▪ %s ( 输出字符串)
26
if 条件语句
解:对应的程序如下:
c=input(‘请输入一个字符’,‘s’); if c>=‘A’&c<=‘Z’
disp(setstr(abs(c)+abs(‘a’)-abs(‘A’))); elseif c>=‘a’&c<=‘z’
disp(setstr(abs(c)-abs(‘a’)+abs(‘A’))); elseif c>=‘0’&c<=‘9’
打开已有的 M 文件
菜单操作 ( File Open ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 双击 M 文件
5
编程示例
例:用 mesh 绘制半径为 3 的球
命令行方式:
>> u=[0:pi/60:2*pi]; >> v=[0:pi/60:pi]; >> [U,V]=meshgrid(u,v); >> R=3; >> X=R*sin(V).*cos(U); >> Y=R*sin(V).*sin(U); >> Z=R*cos(V); >> mesh(X,Y,Z); >> axis equal;
9
关系运算举例
例: >> 2+2==4
>> 2>3
>> A=[1 3 5; 2 0 6]; >> B=[3 1 0; 2 4 6]; >> A>=B >> x=[5 0; 4 2]; >> x<4
10
逻辑运算
逻辑运算符
& | ~ xor(x,y)
与 (Elementwise AND) 或 (Elementwise OR) 非 异或
16
M文件控制流
程序控制结构有三种: 顺序结构、选择结构和循环结构 任何复杂的程序都由这三种基本结构组成
顺序结构
按排列顺序依次执行各条语句,直到程序的最后 这是最简单的一种程序结构,一般涉及数据的输入输 出、数据的计算或处理等
17
input
数据的输入:input
A=input(提示信息)
else 语句组2
end
24
if 条件语句
多分支结构
if expr1 (条件1) 语句组1
elseif expr2 (条件2) 语句组2
... ... elseif exprm (条件m)
语句组m else
语句组
end
25
if 条件语句
例1 输入一个字符,若为大写 字母,则输出其对应的小写字 母;若为小写字母则输出其对 应的大写字母;若为数字字符 则输出其对应的数值,若为其 它字符则原样输出。
>> isfinite(5) >> isinf(5)
14
运算优先级
括号 幂,点幂 正号,负号,逻辑非 乘,除,点乘,点除 加,减 冒号运算 关系运算
& | && ||


15
本讲主要内容
M 文件 Matlab 编程基础
算术运算、关系运算、逻辑运算 控制结构:
顺序结构:数据输入输出(input、disp、fprintf 等) 选择结构:if 语句、switch 语句 循环结构:for 循环、while 循环
若想强行终止正常运行的程序,可以使用 Ctrl+c
22
选择结构
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句。Matlab 用于实现选择结构的语句有 if 语句和 switch 语句。
23
if 条件语句
单分支结构
if expr(条件) 语句组
end
双分支结构
if expr(条件) 语句组1
%价格大于等于5000
rate=14/100;
end
price=price*(1-rate)%输出商品的实际销售价格
31
循环结构
循环结构 是按照给定的条件,重复执行指定的语句。 Matlab 用于实现循环结构的语句有 for 语句和 while 语句
32
for 循环
循环变量
for var = expr 循环体
没有折扣
3%折扣 5%折扣 8%折扣 10%折扣 14%折扣
30
switch 语句
解:程序如下
price=input(‘请输入商品价格’);
swich fix(price/100)
case{0,1}
%价格小于200
rate=0;
case{2,3,4}
%价格大于等于200小于500
rate=3/100;
1
0
1
1
0
1
0
0
在 Matlab 中,0 表示 “假”,非零表示 “真”
12
逻辑运算
逻辑运算函数:all、any
any(x)
如果向量 X 中存在非零元素,则返回 1, 否则返回 0
all(x)
如果向量 X 中所有元素都非零,则返回 1, 否则返回 0
若 x 为矩阵,则 any 和 all 按列运算, 返回一个 0-1 向量
相关文档
最新文档