- 11
- 0
- 约1.05万字
- 约 17页
- 2021-02-26 发布于河北
- 举报
第 6 章 M文件与程序设计
复杂问题的解算需要借助 MATLAB 程序进行。这种程序的扩展名为 m——故称为 M 文件。
文件分 ( M )脚本文件和( M )函数文件。
本章介 写 MATLAB 程序 常用的控制 构、函数文件的构造、主函数、子函数及述函数句柄的 建、 察和 用。
6.1MATLAB
控制流
语 法
说 明
if 表达式
1. 若表达式返回数 , 当所
句体 1
有元素都不 零 真; 若数
elseif
空, 假 。
句体 2
2.elseif和 else可 ,其中可有多
else
个。
句体 3
elseif
end
switch 表达式
1. 行第一个 足条件的 句
case表达式 1
体。
句体 1
2. case 后可用花括号把多个表达
case {式 2,式 3?} 式以 “或” 接起来。
句体 2
3.可有多个 case 句。
otherwise
4. otherwise 可 。
句体 3
end
for x = 表达式
1. 行确定次数的循 。
句体
2. 表达式 矩 , x 把矩 按
end
列拉 向量取 。
while 表达式
若表达式 真 ,循 行 句
句体
体。
end
6.1.1 if-else-end控制 构
if-else-end指令 程序流提供了一种分支控制。
1
指 令 组 才 被 令 被 行;否
行。
,(commands2)被 行。
6.1-1 if-else-end 分支 构的使用方式
单 分 支
双 分 支
多 分 支
if expr
if expr
if expr1
(command
(commands1)
(commands)
s)
else
elseif expr2
end
(commands2)
(commands)
end
??.
else
(commandsk)
end
expr 出 当 expr 出“ expr1,expr2,? 中,首“ 1” , 辑 1 ” 时 , 先 出“ 1”的那个
(commands) (commands1) 指 分支的指令 被 行;否
,(commandsk)被 行。
该 使 用 方 法 常 被switch-case所取代。
x
x
1
y
x 3
1
x 1
【例
6.1-1】已知函数
x 1
1
,
e
x
写能 任意一 入 x 求相 y 的程序。
( 1) 写函数文件程序:
function y=exm060101(x)
% y=exm060101(x) Function calculate of example 6.1-1
n=length(x);
for k=1:n
if x(k)-1
y(k)=x(k);
elseif x(k)=1
y(k)=exp(1-x(k));
else
y(k)=x(k)^3;
end
end
2
2)保存在搜索路径上
3)调用函数文件
x=[-2,-1.2,-0.4,0.8,1,6]
y=exm060101(x)
6.1.2 switch-case控制结构
表 6.1-2 switch-case控制结构的使用方式
指 令 格 式 含 义
switch expr
expr 为根据此前给定变量进行计算的表
达式
case value_1
value_1 是给定的数值、 字符串标量 (或
(commands1)
单元数组)
case value_2
若 expr 结果与 value_1(或其中的单元
(commands2)
元素)相等,则执行。
case value_k
value_k 是给定的数值、 字符串标量 (或
(commandsk)
单元数组)
若 expr 结果与 value_k(或其中的单元
元素)相等,则执行。
otherwise
该情况是以上的“并”的“补”
(commands)
若所有 case都不发生,则执行该组命令。
end
【例 6.1-2】已知学生的名字和百分制分数。要求根据学生的百分制分数,分别采用“满分”、“优秀”、“良好”、“及格”和“不及格”等表示学生的学习成绩。
clear;
for k=1:10
a(k)={89+k};b(k)={79+k};c(k)={69+k};d(k)={59
+k};
end;
c=[d,c];
%
A=cell(3,5);
3
A(1,:)={Jack,Marry,Peter,Rose,Tom};
A(2,:)={72,83,56,94,100};
%
for k=1:5
switch A{2,k}
case 100
r= 满分 ;
case a
r= 优秀 ;
case b
r= 良好 ;
case c
r= 及
原创力文档

文档评论(0)