第3章M文件设计讲稿

合集下载

第3章 M文件设计

第3章 M文件设计
theta=30*pi/180;fai=104*pi/180; x1=R*cos(theta)*cos(fai); y1=R*cos(theta)*sin(fai); z1=R*sin(theta); p1=[x1,y1,z1]; theta=40*pi/180;fai=116*pi/180; x2=R*cos(theta)*cos(fai); y2=R*cos(theta)*sin(fai); z2=R*sin(theta); p2=[x2,y2,z2]; d=R*acos(p1*p2'/(R*R))
5.修改“例6 用试商法判断素数”的程序,产生 修改“ 用试商法判断素数”的程序,产生100
以内的全部素数。 以内的全部素数。
6.用help命令获取primes的使用方法,用求素数函 的使用方法, 产生100以内的全部素数。 以内的全部素数。 数primes()产生 以内的全部素数
第3章 M文件设计 I 章 文件设计
命令文件(程序文件) 命令文件(程序文件) 表达式和运算符 程序设计中的流程控制 练习与思考题
————命令文件————
计算机程序主要功能——接收数据和处理数据 并将 接收数据和处理数据,并将 计算机程序主要功能 接收数据和处理数据 处理后的数据完整有效地提供给用户 成都:北纬 北纬30 东经 东经104 o,北京 北纬 o,东经 o 北京:北纬 东经116 例1 成都 北纬 o,东经 北京 北纬40 东经 计算两城市的距离 R=6400; 在编辑窗口编写文 编辑窗口编写文 件distance.m 命令窗口键入 在命令窗口键入 distance 结果显示: 结果显示 d = 1.5634e+003
n=input(‘input n=’); while n~=1 r=rem(n,2); if r = =0 n=n/2 else n=3*n+1 end end n=5

M文件程序设计基础

M文件程序设计基础

M文件.m → P代码文件. p
预解析pcode
• 5.1.3 变量类型 (1)局部变量:仅在一个函数内起作用的变量 (1) (2)全局变量:global
add3.m global a b, a=1;b=2;add3(3)
(3)持续变量persistent:函数内声明、使用 findSum.m 观察多次调用findSum(3)结果 • 5.1.4关键字和特殊值 关键字和特殊值 (1)关键字:变量名不与之同名 iskeyword (2)特殊值:P116 ans eps intmax intmin pi i j inf NaN computer version
• count=fwrite(fid,A) count=fwrite(fid,A,PRECISIONSIZE) count=fwrite(fid,A, PRECISIONZSIZE,SKIP) (2)读写文本文件fgetl,fgets tline=fgetl(fid)返回下一行文本的字符串, 不保留换行符 ,fgets保留换行符 fgets= -1,读到末尾;空 错误;字符串,成功
• 5.2.3 错误控制语句 错误控制语句try-catch-end try 语句体1 catch 语句体2 end 若语句体1出现错误,跳出,执行语句体2 eg: n=4;A=eye(3);try A(n,:),catch A(end,:),end,lasterr
• 5.2.4程序终止语句 程序终止语句 return用于终止当前的命令序列并返回 正在被调用的函数;终止keyboard方式
eg: fid=fopen('fgetl.m');while 1 tline=fgetl(fid);if ~ischar(tline), break,end,disp(tline),end,fclose(fid);

应用光学课件第三章

应用光学课件第三章
盲点实验
应用光学课件第三章
应用光学讲稿
从光学角度看,人眼主要有三部分: 水晶体----镜头 网膜----底片 瞳孔----光阑
人眼相当于一架照 相机,能够自动调节
应用光学课件第三章
应用光学讲稿
视觉的产生 外界的光线进入人眼 成像在视网膜上,产生视神经脉冲 通过视神经传向大脑,经过高级的中枢神经
活动,形成视觉
物理过程,生理过程,心理过程
应用光学课件第三章
应用光学讲稿
人眼的光学特性
视轴:黄斑中心与眼睛光学系统的像方节点连线 人眼视场:观察范围可达150º
头不动,能看清视轴中心6º-8º 要看清旁边物体,眼睛在眼窝内转动,头也动
应用光学课件第三章
应用光学讲稿
二、人眼的调节:视度调节、瞳孔调节
1、视度调节 定义:随着物体距离改变,人眼自动改变焦距,使像 落在视网膜上的过程。
对二线的分辨率称为对 准精度,右图的对准精 度都是10”
应用光学课件第三章
应用光学讲稿
看得清楚的条件 必要条件:成像在视网膜上 充分条件:对二点,视角大于或等于60”
对二线,视角大于或等于10”
应用光学课件第三章
应用光学讲稿
§3-2 放大镜和显微镜的工作原理
被观察物体首先要成像在视网膜上,而且对人眼 的张角大于人眼的视角分辨率时,才能被看清。
望远镜的视放大率
f
' 物
f目'
要增大视角,要求 1 ,即要求 f物' f目'
物镜的焦距比目镜的焦距长几倍,仪器就放大几倍
倍率越高,物镜焦距越长,仪器的长度就越长
Γ可正可负:Γ >0,ω和ω’同号,成正立的像 Γ<0,ω和ω’异号,成倒立的像

第三章 理想反应器

第三章 理想反应器

A2 =
0.92 × 2.3 × (1 − 0.7) × 22.2 × 51047 2 1799.2(110 − 50) =6.65 m
3.1-3 分批式操作的优化分析 用两种目标进行优化: 1.着眼于反应器的平均生产速率 Y R 为最大的优化
YR =

C RV t + t0
kmol h
38
化学反应工程课程讲稿
t opt 。
x A = 1 − exp[− kt ]
微分得
dx A = k exp[− kt ] dt xA = k exp[− kt ] t + t0

x A = (t + t 0 )k exp[− kt ] 1 − exp(− kt ) = (t + t 0 )k exp(− kt )
用试差法解满足 Y R 为最大的
d (C AV ) dt
v 为 A 的加料速度,假定恒定,反应流体容积:
dV =v 且 dt
40
化学反应工程课程讲稿
得 VC
A
= Ie − kt +
vC A0 k
t=0,VC A =0 代入上式积分常数 I= − vC A0 /k
vC A0 (1 − e − kt ) VC A = k
CA v[1 − exp(− kt )] 1 − exp(− kt ) = = C A0 k (v0 + vt ) ⎡V ⎤ k ⎢ + t⎥ ⎣v ⎦
(ii)计算 Y R 最大的反应时间 计算所得 x A − t 标绘, t= − 1.0 的 点对 x A −t 曲线作切线, 该切点 x A 和 t 即为
x Aopt 和 t opt 。 t opt =1.6h

磁性物理学(第三章讲稿)

磁性物理学(第三章讲稿)

sh 1
1 2
x
x
2
J

m emJx J
mJ J
d dx
J
e m J x
mJ J
d dx
sh
J
sh 1 2
1 2
x
x
J
1 2
ch
J
1 2
x
sh
1 2
x
1 2
sh
J
1 2
x
ch(
1 2
x )
sh 2 1 x
2
J
0
M 0
B J '
Nk B T
M
2 0
'
H M
0
当 T T c时,若 H 0,则无非零解,若要有 则需加 H 。而 T T c时, ' 1, 又 H 0
此时, M J 1 ' M 0 3J
M
M
0
J 1' 3J
NJg
JB
J 1' 3J
又 ' gJJB(H M ) k BT
sh x
ex
ex 2
, ch x
ex
ex 2
, th x
ex ex
ex ex
, cth x
ex ex
ex ex
考虑到
F k B T ln Z ( H )与 M
F H T ,P H T ,P
ln
Z(H
)
N
ln
4
k
J
BT H
sh
JH k BT
ln
Z(H
四、M0与Ms的区别: a、饱和磁化强度M0:原子磁矩在H作用

M文件及程序调试PPT教学课件

M文件及程序调试PPT教学课件
a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
2020/12/09
13
例: 利用函数文件,实现直角坐标(x,y)与极坐标 (ρ,θ)之间的转换。
函数文件tran.m: function [rho,theta]=tran(x,y) rho=sqrt(x*x+y*y); theta=atan(y/x);
用主程序文件main1.m调用函数文件tran.m:
思考题2: 将实验二的部分程序编写为M文件并运行。
2020/12/09
10
2.6.4 函数文件 1. 函数文件的基本结构
函数文件由function语句引导,其基本结构 为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 其中以function开头的一行为引导行,表示该 M文件是一个函数文件。函数名的命名规 则与变量名相同。输入形参为函数的输入 参数,输出形参为函数的输出参数。当输 出形参多于一个时,则应该用方括号括起 来。
然后在MATLAB的命令窗口调用该函数 文件:
clear; x=1:10; y=[11,12,13,14;15,16,17,18]; [x,y]=exch(x,y)
2020/12/09
3
2.6.2 M文件的建立与打开
M文件是一个文本文件,它可以用任何编辑程序 来建立和编辑,而一般常用且最为方便的是使用 MATLAB提供的文本编辑器。 1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有 3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选 择New菜单项,再选择M-file命令,屏幕上将出现 MATLAB 文本编辑器窗口。

第三章M文件设计

第三章M文件设计

分析下列程序,说明运行结果及原因
a=3;b=6; for i=1:3
b=b+1;
运行结果: a=5
if i<2 continue
end a=a+2 end
a=7 %当if条件满足时不再执行后面语句
%当i<2时不执行该语句
4. break命令
通常用于for或while循环语句中,与if语句一起使用,中 止本次循环,跳出最内层循环
条件控制; 循环控制; 错误控制;终止运行控制 条件控制——有选择地运行程序块
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
程序运行: input n=44 44 不是5的倍数
fprintf('%d 是5的倍数',n)
otherwise
fprintf('%d 不是5的倍数',n)
end
1. for循环 语法: for 变量 =初值:步长:终值
变量名=表达式
theta=pi/4 x=sin(theta); P=1+2*x+3*x^2+4*x^3
局部变量和全局变量
局部变量:具有函数内部作用范围 全局变量:可在几个函数和基本工作空间 之间共享,具有全局作用范围 全局变量的声明:

图论课件第三章 图的连通性

图论课件第三章 图的连通性

(Gv)(G)
证明:“必要性” 设v是G的割点。则E(G)可划分为两个非空边子集E1与 E2,使G[E1],G[E2]恰好以v为公共点。由于G没有环,所
17
第17页,本讲稿共29页
以,G[E1],G[E2]分别至少包含异于v的G的点,这样,Gv的分支数比G的分支数至少多1,所以:
(Gv)(G)
“充分性” 由割点定义结论显然。 定理7 v是树T的顶点,则v是割点,当且仅当v是树的 分支点。
定理1 边 e 是图G的割边当且仅当 e 不在G的任何圈中。
证明:可以假设G连通。 “必要性” 若不然。设 e 在图G的某圈 C 中,且令e = u v.
考虑P = C- e,则P是一条u v路。下面证明G-e连通。
对任意 x, y V(G-e) 由于G连通,所以存在x ---y路
Q.若Q不含e,则x与y在G-e里连通;若Q含有e,则可选 择路:x ---u P v --- y,说明x与y在G-e里也连通。所以,若 边e在G的某圈中,则G-e连通。
定义6 设G是连通图,T是G的一棵生成树。如果G的 一个割集S恰好包含T的一条树枝,称S是G的对于T的一 个基本割集。
14
第14页,本讲稿共29页
例如:在图G中
f a
bc
e
d
图G
G的相对于T的基本割集为: {a , e}, {f , c}, {f, b , e}, {d}.
关于基本割集,有如下重要结论:
证明:(必要性)设G是块。因G没有割点,所以,它 不能有环。对任意u, v ∈V(G),下面证明u, v位于某一圈上 。
对d (u, v) 作数学归纳法证明。 当d (u, v) =1时,由于G是至少3个点的块,所以,边 uv不能为割边,否则,u或v为割点,矛盾。由割边性质 ,uv必然在某圈中。 设当d (u, v) <k时结论成立。

M文件PPT课件

M文件PPT课件
23
MATLAB
2. 选择结构(根据给定条件成立否,分别执行不同语
句,主要有if,switch,try)
(1) 条件分支语句——if语句
在MATLAB中,if语句有3种格式。
1) 单分支if语句:
if 条件
语句组
end
2)双分支if语句;(求分段函数多用)
if 条件
语句组1
else
语句组2
end
24
☺用matlab自带的编辑器来创建m文件。 (建 议使用)。
☺单击桌面图标 ,或选中{File:New: M-File} ,或在命令窗输入指令edit,都可以打开
7
空白的M文件编辑器;点击 ,打开已有的M文
MATLAB
(2) M文件的分类
M文件有两类:命令文件(脚本文件)和函数 文件。它们的扩展名均为.m。
30
MATLAB
(3)循环的嵌套
如果一个循环结构的循环体又包括 一个循环结构,就称为循环的嵌套,或 称为多重循环结构。exfor.m
31
MATLAB
(4)break语句和continue语句 ☺它们一般与if语句配合使用。 ☺break语句用于终止循环的执行。 当在循环体
第四章 MATLAB程序设计
4.1 M文件 4.2 程序控制结构 4.3 程序调试
2
MATLAB
本章重点
1.掌握M文件的特点及功能 2.编写M函数文件的基本方法及步骤 3.掌握常用的几种程序控制结构
3
MATLAB
4.1 M文件
☺MATLAB的工作模式 ☺M文件介绍 ☺M函数文件相关概念
4
MATLAB
1. MATLAB的工作模式
指令(命令)执行模式

操作系统讲稿2012(第三章)

操作系统讲稿2012(第三章)

例:程序A的起始地址为51200,共12条指令;程序B 的起始地址为81920,共4条指令,其中第4条指令包 括I/O指令;程序C的起始地址为194560,共12条指 令;分派程序的起始地址为20480,共6条指令;三个 程序以及分派程序均在内存,操作系统每次执行6条 用 户程序指令后就会自动终止当前用户程序,转去执行 分派程序。每条指令需要一个指令周期,则程序的执 行过程如下:
1. 51200 2. 51201 3. 51202 4. 51203 5. 51204 6. 51205 超时
7 20480 8 20481 9 20482 10 20483 11 20484 12 20485 13 81920 14 81921 15 81922 16 81923 I/O请求
17 20480 18 20481 19 20482 20 20483 21 20484 22 20485 23 194560 24 194561 25 194562 26 194563 27 194564 28 194565 超时
3.程序的顺序执行:一个具有独立功能的程序独占处理机 直至最终结束的过程称为程序的顺序执行。
4.程序顺序执行的特征: (1)顺序性:每一个操作都必须在上一个操作完成 之后开始 内:语句之间、指令之间 外:程序之间 (2)封闭性:资源独占,只有运行的程序能够改变资 源状态,每个程序的执行不会受到外部因素的影响。
就绪 阻塞
× ×
被分派程序 选中
×
事件发生
× ×
被父进程终止 被父进程终止
×
说明:一般的操作系统为了管理方便,根据等待的事件设置多个 阻塞队列,将等待不同事件的进程放在不同的等待队列中。
3.4进程控制
进程控制:系统使用一些具有特定功能的程序来创建、撤 消进程以及完成进程各状态间的转换,从而达到多进程、 高效率、并发执行和协调、实现资源共享的目的。 进程控制是通过原语来实现。 原语:用于完成某种特定功能的不可分割的一段程序。 原语的实现是通过关中断来实现的。 实现进程控制的程序段被称作进程控制原语。

九年级上册英语教案 教学设计 讲课稿 Module 3 Unit 2

九年级上册英语教案 教学设计 讲课稿 Module 3 Unit 2

九年级:Module 3 Unit 2 There were few doctors, so he had to work very hard on his own.主讲人:Hello, boys and girls, welcome to our happy lesson. I’m glad to be your teacher today. My name is Yang Rujing from Pan Shan Dao Middle School.(P1)今天我将带领大家进行九年级上册第三模块第二单元的学习。

本节课将侧重阅读和写作训练。

本模块的标题为Heroes, 我们将通过Unit 2 There were few doctors, so he had to work very hard on his own.相关内容的学习,进行阅读和写作专题的练习。

(单击鼠标)(P2) 首先和同学们分享的是本节课的内容分析。

第二单元课文介绍了国际共产主义战士---诺曼·白求恩的伟大事迹。

白求恩出生于加拿大安大略省,毕业于多伦多大学。

他在第一次世界大战期间应征入伍,在欧洲前线服役。

1936年至1937年他到西班牙作为国际反法西斯志愿者投身西班牙内战。

1938年春天,他来到中国,成了一名战地医生。

1939年,他的手在一次手术中不幸被感染,不久因败血症在河北省去世。

(单击鼠标)(P3)基于以上内容,我们确定本节课的学习目标包括3个方面:1. 能够通过阅读了解英雄人物的生平,并对重要事件按时间顺序排序。

2. 能够根据时间轴提示并运用原因、目的或结果状语从句写一篇介绍自己心目中英雄人物的文章。

3. 了解不同领域的一些英雄人物,学习他们的宝贵精神。

(单击鼠标)(P4-P5) 下面我们开始新课的学习。

At the end of Unit 1, I told you we would learn another hero in Unit 2, now we will learn about Dr Norman Bethune. 因为时代差异,同学们可能并不是很了解白求恩,请大家看一些图片。

第3章M文件设计讲稿

第3章M文件设计讲稿

第3章 M 文件设计前面两章进行各种操作时,都是通过在MA TLAB 命令窗口中输入命令行实现的。

这种使用方式比较简便。

但是,当命令行比较多,或者需要重复调用这些命令行时,就需要采用M 文件函数的运行方式。

M 文件函数是MA TLAB 中功能语句的集合。

使用M 文件,可以以程序的形式重复处理数据,从而提高工作效率。

3.1 局部变量和全局变量第2章介绍了变量的命名和数据类型,本章继续介绍变量的有关知识。

●局部变量局部变量的作用范围仅限于M 文件中的一段程序,一旦运行超出该段程序,变量的值将不再保留。

●全局变量全局变量用global 关键字进行声明,其作用范围为整个M 文件。

注:如果希望扩展变量的作用范围,可以采用两种方法:一种方法是将该变量作为函数参数进行传递,另一种方法是将该变量声明为全局变量。

将变量作为函数参数进行传递的方法更保险,因为声明为全局变量时,可能会在无意中更改该变量的值。

此时程序往往可以运行,但结果可能不正确,而且错误较难排查。

3.2 表达式与其他程序语言类似,MA TLAB 提供了数学表达式功能。

但是,与大多数程序语言不同的是,这些表达式主要针对数组进行操作。

3.2.1 数值表示MA TLAB 使用传统的数值表示方法。

对于比较长的数,使用科学计数法,用字母e 指定以10为底的幂次。

虚数用i 或j 作后缀。

下面是一些合法的数值表示:8 -66 8.518718 1.5022e-18 7.0218e23 8i -3.14159j 6e8i所有数值在内部保存为IEEE 浮点标准指定的long 型格式。

浮点数据的精度为16个小数位。

范围大约为30830810~10。

3.2.2 运算符⒈算术运算符算术运算符用于实现四则运算以及幂、转置等运算,如表3-1所示。

表3-1 算术运算符⒉比较运算符比较运算符比较两个数据的大小,如表3-2所示。

表3-2 比较运算符⒊逻辑运算符逻辑运算符判断对象或对象之间的某种逻辑关系。

第3章(656)教材配套课件

第3章(656)教材配套课件
3
第3章 M文件初步
图3.1 新建的未命名(Untitled)空白脚本文件编辑窗口
4
第3章 M文件初步
图3.2 新建的未命名(Untitled)函数文件编辑调试窗口
5
第3章 M文件初步
3.1.2 M文件编写初步
20
【例3-1】 编写一个脚本文件,计算 n 。 n 1
编写脚本文件的步骤: (1) 启动M文件编辑调试器,建立新的脚本文件。
m2=rem(fix(m/10),10); %求 m 的十位数字,rem()为求余函数
m3=rem(m,10);
%求 m 的个位数字
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
disp(m)
end
end
在指令窗中执行文件 exm3_9.m,运行结果为
153
370
371
407
35
第3章 M文件初步
ln 3
求分段函数
y



x
lg e
7
,
x

2
的值。


x π
,
其他
26
第3章 M文件初步
编写文件名为 exm3_5 的脚本文件: 方法一:利用 switch-case 开关结构。
clear x=input('请输入 x 的值:'); switch 1
case x<=1& x~=-3 y=sqrt(1+x^2)/log(3)
一般最常用且最方便的是使用MATLAB提供的文件编辑器 (MATLAB Editor/Debugger)。
2
第3章 M文件初步

程序设计M文件ppt课件

程序设计M文件ppt课件
函数test2的调用:[90,89,60]分别表示数学、英语、语文的成绩
>> [a,b,c]=test2([90,89,60],[79,89,66],[99,98,100])
a= 89.3333
b= 32.6667
c= 33.3333
思考:如果多个学生的成绩是同一科目的成绩放在一个数组中,如何修改 test2函数。
• for语句
for循环语句是流程控制语句中的基础,使用该循环语句可以以 指定的次数重复执行循环体内的语句。 for循环语句的调用形式:
for 循环控制变量=<循环次数设定>(可以是已定义的向 量,也可在for循环语句中定义)
循环体 end
回到本章目录
for i = 1:4
% 初始值:步长:终值(步长默认为1)
回到本章目录
函数input的另一种调用格式: var=input(‘提示性语句’,’s’)
以该格式调用时,input函数将视用户键盘输入的一切字符 为字符型赋予变量var,而不对其进行任何计算。在提示型 语句中可以用“\n”来控制显示时的换行。例如:
第一种调用格式:
>> a=input('input example\n') input example 1+4 a=
break语句:当程序流程运行至该命令时,则不论循环控制变 量是否满足循环判断语句,均将退出当前循环,执行循环后 的其他语句。
continue命令:当程序流程运行至该命令时,会忽视其后的循 环体操作转而执行下一层的循环。
回到本章目录
63
2n
例. 计算级数:S=1+2+22+23+···+263= n 0

3.M文件及流程控制-2课时

3.M文件及流程控制-2课时

Matlab及其应用
30
3.5 内联函数
内联函数(Inline function)是MATLAB提供的另一种函数形式。它比 较容易创建。 内联函数的创建 g = inline(expr) 把串表达式转化为输入变量生成内联函数 g = inline(expr,arg1,arg2,...) g = inline(expr,n) n为数字,表示输入变量为x(默认),P1,P2,…,Pn 有关内联函数的一些指令 class(inline_fun) char(inline_fun) argnames(inline_fun) vectorize(inline_fun) 给出内联函数的类型 给出内联函数的计算公式 给出内联函数的输入变量 使内联函数适合于数组运算
通过M文件,画出下列分段函数所表示的曲面。
Matlab及其应用 5
点击新建图标
点击新建图标,我们就可以进入编程状态。
Matlab及其应用 6
运行程序或用 F5 功能键
输入程序
上面的菜单帮助我们调式程序
现在我们可以将编好的程序,逐一输入到空白窗口中。在编程 的过程中应该多加注释,使得我们的程序可读性比较强。
在系统内定的目录 建立了aa.m 文件
Matlab及其应用
11
3.2 建立函数文件
函数是程序中最基本的运行单位,我们可以随时调用函数。 现在我们将上面的程序变为函数,让它解决问题更灵活。 在 编辑形态下我们将程序 fun1.m 另存为 fun2.m ,对它进行简 单的修改如下: 赋值语句不用
加函数定义语句
0.5457e x1 x 2 1 x2 2 6 x12 p( x1 , x 2 ) 0.7575e 1 x1 x 2 1 0.75 x2 2 3.75 x12 1.5 x1 x1 x 2 1 0.5457e

实验3-m文件程序设计

实验3-m文件程序设计

实验3. m文件程序设计
1、 实验目的
1. 通过练习理解matlab编程方法;
2. 掌握分支结构程序设计思路;
3. 掌握循环结构程序设计思路。

2、 实验内容
1. 输入一个百分制成绩,要求输出
成绩等级为:A、B、C、D、E,其中 程序:
90-100为A;80-89为B;70-79为C;
60-69为D;60以下为E
1)用if或switch语句实现;
2)输入百分制成绩后要判断成绩
的合理性,对不合理的成绩要输出
出错信息提示,比如:输入成绩不
能大于100。

3) 程序保存名为sy3加上本人学号
测试结果:
保存:
2.某公司员工的工资计算方法如下:
(1)工作时数超过120小时者,主程序: 副程序:
超过部分加发15%;
(2) 工作时数低于60小时者,
扣发700元;
(3)其余按每小时84元计发。

测试结果如下:(number和num是员工工号,
duration是时长,wag是应付工资)
1.根据求的近似值。

当n分别取100、1000、10000时,结果是多少?
要求:分别用循环结构和向量运算(使用sum函数)来实现。

主程序: 副程序: 测试结果:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章M文件设计前面两章进行各种操作时,都是在MA TLAB命令窗口中输入命令行实现的。

这种使用方式比较简便。

但是,当命令行比较多,或者需要重复调用这些命令行时,就需要采用M文件函数的运行方式。

M文件函数是MA TLAB中功能语句的集合。

使用M文件,可以以程序的形式重复处理数据,从而提高工作效率。

3.1 局部变量和全局变量⒈局部变量局部变量的作用范围仅限于M文件中的一段程序,一旦运行超出该段程序,变量的值将不再保留。

⒉全局变量全局变量用global关键字进行声明,其作用范围为整个M文件。

注:如果希望扩展变量的作用范围,可以采用两种方法:一种方法是将该变量作为函数参数进行传递,另一种方法是将该变量声明为全局变量。

将变量作为函数参数进行传递的方法更保险,因为声明为全局变量时,可能会在无意中更改该变量的值。

此时程序往往可以运行,但结果可能不正确,而且错误较难排查。

3.2 表达式与其他程序语言类似,MA TLAB提供了数学表达式功能。

但是,与大多数程序语言不同的是,这些表达式主要是针对数组进行操作的。

3.2.1 数值表示MATLAB使用传统的数值表示方法。

对于比较长的数,使用科学计数法,用字母e指定以10为底的幂次。

虚数用i或j作后缀。

下面是一些合法的数值表示:8 -66 8.518718 1.5022e-18 7.0218e23 8i -3.14159j 6e8i所有数值在内部保存为IEEE浮点标准指定的long型格式。

浮点数据的精度为16个小数位。

范围大约为30830810~10 。

3.2.2 运算符⒈ 算术运算符算术运算符用于实现四则运算以及幂、转置等运算,如表3-1所示。

表3-1 算术运算符⒉ 比较运算符比较运算符用于比较两个数据的大小,如表3-2所示。

表3-2 比较运算符⒊ 逻辑运算符逻辑运算符用于判断对象或对象之间的某种逻辑关系。

如表3-3所示。

表3-3 逻辑运算符演示:A=[0 1 1 0 1.5];B=[1 3 0 0 1];C=[A;B]C =0 1.0000 1.0000 0 1.50001.0000 3.0000 0 0 1.0000c1=A&Bc1 =0 1 0 0 1c2=A|Bc2 =1 1 1 0 1c3=~Ac3 =1 0 0 1 0c4=xor(A,B)c4 =1 0 1 0 0D=[0 1 2;0 -3 8;0 5 0]D =0 1 20 -3 80 5 0d1=any(D)d1=0 1 1d2=all(D)d2=0 1 0⒋运算符的优先级按照优先级别,各种运算符有下面的先后次序。

◣小括号();◣转置(.')、幂(.^)、复数共轭转置(')、矩阵的幂(^);◣一元的加(+)、一元的减(-)、逻辑否(~);◣乘(.*)、右除(./)、左除(.\)、矩阵乘(*)、矩阵右除(/)、矩阵左除(\);◣加(+)、减(-);◣冒号操作符(:);◣比较运算符:<、<=、>、>=、==、~=;◣& (and);◣| (or);◣&&;◣||。

3.2.3 处理字符串表达式可以处理字符串表达式使得MA TLAB语言更强大灵活。

处理字符串表达式需要使用eval函数和feval函数。

●eval函数可以处理包含MATLAB表达式、语句或函数调用的字符串。

使用该函数的最简单的语法格式为:eval('string') 将字符串string表示的命令转换成命令执行演示:程序代码:%说明eval函数的例子for n = 3:5magic_str = ['M',int2str(n),' = magic(n)'];eval(magic_str)end运行结果:M3 =8 1 63 5 74 9 2M4 =16 2 3 135 11 10 89 7 6 124 14 15 1M5 =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9●feval函数与eval函数的区别在于,该函数执行函数而不是MATLAB表达式。

要执行的函数通过函数句柄或包含函数名称的字符串在第一个参数中指定。

演示:程序代码:%说明feval函数的例子k=input('Choose function number:');x=input('Enter value:');fun=[@sin;@cos;@log];%构建了一个函数句柄数组feval(fun(k),x)3.3 流程控制程序控制语句包括条件控制、循环控制、错误控制和终止运行控制等。

3.3.1 条件控制条件控制使得可以有选择地运行程序块。

当条件可以用是或否来回答时,使用if语句;当条件根据表达式值的不同可有多个选项时,使用switch和case 语句。

⒈if/elseif语句●最简单的if/elseif语句如下所示:if expressionstatements;end功能:如果表达式expression的值为真,就执行if 与end语句之间的代码,否则跳过。

●如果有两个选择,使用下面的if/elseif语句:if expressionstatements1;elsestatements2;end功能:如果表达式(expression)的值为真,就执行if 与else语句之间的代码;否则执行else与end语句之间的代码。

●如果有多个选择时,使用下面的if/elseif语句:if expression1statements1elseif expression2statements2elseif expression3statements3…elsestatementsend功能:若表达式expression1为真,执行代码statements1;若表达式expression2为真,执行代码statements2;若表达式expression3为真,执行代码statements3;…;否则执行代码statements。

注:在解决多个选择问题时,用elseif语句比用if语句简单。

例如:程序段:if Ax = aelseif Bx = belseif Cx = celsex = dendendend可简化为程序段:if Ax = aelseif Bx = belseif Cx = celsex = dend⒉switch/case语句该语句的通用格式为:switch switch-expressincase case-expressin1,statements1;case case-expressin2,statements2;case case-expressin3,statements3;…otherwisestatements;end其中,switch-expressin给出开关条件,当有case-expressin与之匹配时,就执行其后的语句,如果没有case-expressin与之匹配,就执行otherwise后面的语句。

在执行过程中,只有一个case命令被执行,当执行完命令后,程序就跳出分支结构,执行end下面的语句。

3.3.2 循环控制使用循环控制语句,可以重复执行代码块。

用for语句执行指定次数;while 语句适合于循环一直执行,直到满足条件为止的情况;continue和break语句对退出循环给予更多控制。

⒈for循环for循环允许一组命令以固定的和预定的次数重复执行,for循环的一般形式如下:for v=expressionstatement;end⒉while循环while循环以不定的次数来求一组命令的值。

while循环的一般形式如下:while expressionstatements;end只要表达式expression中的元素为真,就执行while和end语句之间的命令。

⒊continue命令continue命令经常与for或while语句一起使用,其作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判断。

⒋break命令break命令也经常与for或while等语句一起使用,其作用是终止本次循环,跳出最内层的循环。

使用break命令可以不必等到循环自然结束,而是根据条件,退出循环。

3.3.3 错误控制try…catch语句进行错误捕获,它把有可能引起异常的语句放在try控制块中。

这样当try控制块中statement语句引起异常时,catch控制块就可以捕获它,并针对不同的错误类型,进行不同的处理。

try-catch命令的调用格式为:trystatement…statementcatchstatement…statementend3.3.4 程序终止控制return命令能使当前正在运行的函数正常退出,并返回调用它的函数,继续运行。

这个语句经常用于函数的末尾,以正常结束函数的运行。

break,continue和return函数比较容易混淆,表3-4对它们进行了比较详细的比较:表3-4 break,continue和return函数的区别3.3.5 应用实例例3-1筛选数据程序一代码:x=[-23 -10 -8 -4 -2 -1 0 1 3 4 5 7 8 9 10 14 19 34];n=numel(x);y=[];z=[];l=0;k=0;for i=1:nif x(i)>=-10&&x(i)<=10l=l+1;y(l)=x(i);elsek=k+1;z(k)=x(i);endendy=yz=z其运行结果:y =-10 -8 -4 -2 -1 0 1 3 4 5 7 8 9 10 z =-23 14 19 34程序二代码:%筛选数据x=[-23 -10 -8 -4 -2 -1 0 1 3 4 5 7 8 9 10 14 19 34];n=numel(x);y=[];z=[];l=0;k=0;for i=1:nif x(i)>10l=l+1;y(l)=x(i);endif x(i)<-10k=k+1;z(k)=x(i);endendy=yz=z其运行结果:y =14 19 34z =-23程序三代码:%筛选数据x=[-23 -10 -8 -4 -2 -1 0 1 3 4 5 7 8 9 10 14 19 34];n=numel(x);y=[];z=[];l=0;k=0;for i=1:nif x(i)>10l=l+1;y(l)=x(i);endcontinueif x(i)<-10k=k+1;z(k)=x(i);endendy=yz=z其运行结果:y =14 19 34z =[]程序四代码:%筛选数据x=[-23 -10 -8 -4 -2 -1 0 1 3 4 5 7 8 9 10 14 19 34];n=numel(x);y=[];z=[];l=0;k=0;for i=1:nif x(i)>10l=l+1;y(l)=x(i);endbreakif x(i)<-10k=k+1;z(k)=x(i);endendy=yz=z其运行结果:y =[]z =[]3.4 函数MATLAB提供了很多内部数学函数,包括abs、sqrt、exp和sin等。

相关文档
最新文档