MATLAB程序设计――流程控制语句(精)
第5讲 流程控制语句
4. 控制程序流的其他常用指令
终止命令break。它一般用在for循环和while循 环中,通过if语句,当if语句满足一定条件时, break语句将被调用,跳出当前循环体。在多 层嵌套循环中,break只能跳出包含它的最内 层的循环。 继续命令continue。它一般也用在for循环和 while循环中,与break不同的是,用continue 语句之后,系统只是跳到下一次循环,并不会 跳出当前的循环体。
等待用户反映命令 pause。此命令用于使程序暂 时终止运行,等待用户按任意键后继续运行。此 语句适合于用户在调试程序时需要检查中间结果 的情况。它的使用格式为: pause命令用于暂时终止程序,按Enter键后继续。 pause(n)命令在程序运行到该处时将等待n秒后 再继续运行。这里n可以是分数。 pause off命令可以使随后的pause和pause(n)命 令不予执行。 pause on命令可使随后的pause和pause(n)命令 予以执行。
如果规定,size可取值: N 表示读取N个数据形成一个列向量; inf 表示读取所有数据 [M, N] 表示读取M×N个数据,按列的顺序形 成M×N矩阵。N可以是inf,但M不可以是inf。
(2) 指定格式读取。调用格式: a=fscanf(fid,format,size) 从fid所指定的文件中,按字符串format所指定 的数据格式读取数据,把它们保存到矩阵a中。 (3) 将数据写入文件中,调用格式: fprintf(fid,format,A,B,…)
循环结构
①
for循环语句(注意:for与end要成对出现) for循环的最大特点是,它的循环条件通常就 是对循环次数的判断,循环次数是预先设定 好的。一般使用格式为: for 变量=表达式 语句集合 end 它的表达式是一个向量,其形式可以是m:s:n 或m:n。还可以直接将一个向量赋值给变量, 择时,程序结构为: if 逻辑表达式1 语句集合1 elseif 逻辑表达式2 语句集合2 …… else 语句集合n end 在这种形式中,当运行到某一条逻辑表达式为 真时,则执行与之相关的语句集合,此时系统 不再验证其他的关系表达式,即跳出此结构。
MATLAB程序设计流程控制语句
顺序结构 判断语句(if…else…end) 分支语句 循环语句 其他流程控制函数
1
函数流程控制——顺序结构
顺序结构是最简单的程序结构,系统在编译程序时,按 照程序的物理位置顺序执行。这种程序容易编制,但是 结构单一,能够实现的功能有限。
r=1;
% the radius of the colume
20
Байду номын сангаас
函数流程控制——循环语句——while语句
while 语句用于将相同的代码块执行多次,但是次数并 不预先指定,当 while 的条件表达式为真时,执行代码块, 直到条件表达式为假。
while 语句的结构为: while 表达式 执行代码块 end
21
函数流程控制——循环语句——while语句
case 条件语句
执行代码块
case {条件语句1, 条件语句2, 条件语句3, ...}
执行代码块
otherwise 执行代码块
end
12
函数流程控制——分支语句
其中的分支语句为一个变量,可以是数值变量或者字符 串变量,如果该变量的值与某一条件相符,则执行相应 的语句,否则,执行 otherwise 后面的语句。在每一个 条件中,可以包含一个条件语句,可以包含多个条件, 当包含多个条件时,将条件以单元数组的形式表示。
elseif 表达式2
执行代码块2
elseif ......
......
......
else
执行代码块
end
其中可以包含任意多个 elseif 语句。
8
函数流程控制——判断语句
例1:输入一个字符,若为大写字母,则输出其对应的小 写字母;若为小写字母,则输出其对应的大写字母;若 为数字字符则输出其对应的数值,若为其他字符则原样 输出。
matlab的程序流程控制实验总结
matlab的程序流程控制实验总结Matlab programming is a powerful tool that can be used to solve complex mathematical problems and analyze data. In order to fully utilize its capabilities, it is important to have a good understandingof program flow control in Matlab. Program flow control refers to the way in which the execution of a program is controlled in order to achieve the desired outcome. One of the most common ways to control the flow of a program in Matlab is through the use of loops. Loops allow you to iterate over a set of data or perform a series of operations multiple times. There are two main types of loops in Matlab: for loops and while loops. For loops are used when youknow the exact number of times you want to repeat a block of code, while loops are used when you want to repeat a block of code until a certain condition is met.在Matlab编程中,程序流程控制是一种强大的工具,可以用来解决复杂的数学问题和分析数据。
MATLAB程序设计M文件程序控制结构程序调试程序举例
y=input('Please input y=:');
[rho,the]=tran(x,y);
rho
the MATLAB中,函数能够嵌套调用,即一种函数能够调用别旳函数, 甚至调用它本身。一种函数调用它本身称为函数旳递归调用。
例6 分别建立命令文件和函数文件,将华氏温度f转换为 摄氏温度c。
21.1111
x=
21.1111
(5). 函数文件旳其他有关概念
①局部变量和全局变量:
局部变量只存在于单个函数工作空间,全局变量 经过global定义,可穿行于不同函数工作空间, 涉及基本工作空间workspace。
函数文件旳内部变量是局部旳,与其他函数 及MATLAB内存相互隔离; 而假如在若干函数中把某一变量定义为全局 变量,那么这些函数将公用这个变量,全局 变量旳作用域是整个MATLAB旳工作区,即 全程有效,全部函数都能够对其存取和修改。
if (nargin == 1) tol = max(size(x)) * max(s) * eps;
程序部分
end
r = sum(s > tol);
(2)命令m文件建立及其运营
建立 涉及下列环节: 进入m文件编辑器 输入程序 定义文件名,保存程序
命令M文件旳运营方式: 直接在命令窗口输入该文件旳文件名 在m文件编辑器中打开该文件后点击工具条中
② M文件模式
将matlab语句构成旳程序存储成以m为扩展名 旳文件,然后再执行该程序文件,这种工作模式 称为程序文件模式。
程序文件不能在命令窗口下建立,因为命令窗口 只允许一次执行一行上旳一种或几种语句。
MATLAB基本控制流程结构
2.3M A T L A B基本控制流程结构2.2.1 循环结构●for …… end循环格式1: for 循环变量=初值:增量:终值语句段end格式2: for 循环变量=向量语句段end例1:求S=1 + 2 + … + 100>>S = 0;for x=1:1:100S = S + x;endS>> S = 0;v = 1:100;for x = vS = S + x;endS●while …… end循环格式:while 逻辑表达式语句段end>> S = 0;x = 1;while x<=100S = S + x;x = x + 1;endS● break跳出循环break无条件跳出本层循环。
continue下一循环continue执行下一次循环。
2.2.2 转移结构格式1:if 逻辑变量格式3:if 逻辑变量语句段语句段1end elseif语句段2elseif 格式2:if 逻辑变量语句段3语句段1…else else语句段2语句段nend end例2:自然数累加至超过10000为止。
>>S = 0;for x = 1:10000if S > 10000breakend %% ifS = S + x;end %% forx, S2.2.3 开关结构格式:switch 表达式case 表达式1语句段1case {表达式2,表达式3,…,表达式m}语句段2…otherwise语句段nend2.2.4 试探结构格式:try语句段1catch语句段2end首先执行语句段1,如果出现错误,则将错误信息赋给保留变量lasterr,并终止语句段1的执行,转而执行语句段2。
第4章 MATLAB程序流程控制_习题答案
第3章Java程序流程控制第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
A A.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.20 3.有以下语句:a=eye(5);页脚内容第3章Java程序流程控制for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend页脚内容第3章Java程序流程控制则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
AA.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3 B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
matlab程序设计05
13
流程控制——判断语句—两个选择
程序有码块2
end
14
流程控制——判断语句—两个选择
例子1:编写一个函数,在不使用abs函数的前提下,计 算|x-y| 。 function jdz=absolute_value(x, y)
或者:
a=1; b=2; c=3; x= -6:0.1:6; y = parabolic_curve (a, b, c, x);
9
顺序结构
顺序结构是最简单的程序结构,系统在编译程序时,按照程 序的物理位置顺序执行。这种程序容易编制,但是结构单一, 能够实现的功能有限。
脚本: 函数:
r=1;
h=1;
30
流程控制——分支语句
例1:编写函数计算任意底对数
function [y]=logab(a, b)
switch a
case exp(1) y = log(b); case 2 y = log2(b); case 10 y = log10(b); otherwise y = log(b)/log(a); end
if x>y
jdz=x-y; else jdz=y-x; end
15
流程控制——判断语句—两个选择
例子2:计算分段函数的值
2 ( x ) / e y 2 ln(x 1 x ) / 2
x0 x0
function y=subfunc(x)
if x>=0
y=(x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x^2))/2 end
for i=1:10 for j=1:10 A(i, j)=1/(i+j-1);
第6章 MATLAB程序设计
循环结构
在MATLAB中,包含两种循环结构 循环次数不确定的while循环 循环次数确定的for循环
循环结构(续)
打开方式
MATLAB提供了meditor编辑器编辑M文件 在MATLAB命令行窗口中键入指令edit,则可启动
meditor编辑器 >> edit
打开方式
通过“File”菜单中的“New”子菜单下的“M-file”命令
来启 动meditor编辑器
直接单击 MATLAB用户界面工具栏上的新建按钮
概述(续)
M文件有两类
独立的M文件 —— 脚本(Scripts) 可调用M文件 —— 函数(Functions)
概述(续)
MATLAB通过M语言来实现完整的编写应用程序的能力 M语言 M语言是一种解释性语言,利用该语言编写的代码
仅能被MATLAB接受,被MATLAB解释、执行。 M语言文件可以分为脚本文件和函数文件 一个M语言文件就是由若干MATLAB的命令组合在一 起构成的。 M语言文件是标准的纯文本格式的文件,其文件扩 展名为.m。 使用M文件可以将一组MATLAB命令组合起来,通过 一个简单的指令就可以执行这些命令。
来启动meditor编辑器
2.打开已有的M文件
打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选 择Open命令,则屏幕出现Open对话框,在Open对 话框中选中所需打开的M文件。在文档窗口可以对 打开的M文件进行编辑修改,编辑完成后,将M文 件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令: edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏 上的Open File命令按钮,再从弹出的对话框中选 择所需打开的M文件。
第4章 MATLAB程序流程控制
第4章 MATLAB程序流程控制
2.switch语句 switch语句根据表达式的取值不同,分别执行不 同的语句,其语句格式为:
第4章 MATLAB程序流程控制
(3) 多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end
第4章 MATLAB程序流程控制
第4章 MATLAB程序流程控制
例4-4 输入一个字符,若为大写字母,则输出其对应 的小写字母;若为小写字母,则输出其对应的大写 字母;若为数字字符则输出其对应的数值,若为其 他字符则原样输出。
age is 17>> >> fprintf('age is %d\n',17); age is 17
第4章 MATLAB程序流程控制
例4-2 求一元二次方程ax2 +bx+c=0的根。 程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); delta=b*b-4*a*c; x=[(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
M文件的扩展名为.mFra bibliotek第4章 MATLAB程序流程控制
1.建立新的M文件 为建立新的M文件,启动MATLAB编辑器有3种方法。 ① 在MATLAB主窗口选择“主页”选项卡,在“文件” 命令组中单击“新建脚本”命令按钮。 ② 在MATLAB命令行窗口输入命令: edit 文件名 启动MATLAB编辑器后,输入M文件的内容并存盘。 ③ 在命令历史窗口选中一些命令(按住Ctrl可同时选 择多条命令),然后从右键快捷菜单中选择“创建 脚本”命令,将会启动MATLAB编辑器,并在编辑 区中加入所选中的命令。
06-MATLAB程序流程控制
case {12,1,2}
season = 'Winter';
end
fprintf('Month %d ===> %s.\n', month, season);
end
Month 1 ===> Winter.
.
.
.
.
.
.
Month 12 ===> Winter.
MATLAB 程序设计
程序流程控制之范例十二
1/6
1/7
1/8
1/9
1/10
1/6
1/7
1/8
1/9
1/10
1/11
向量化编程: [I,J]=meshgrid(1:6,1:6);h=1./[I+J-1]
MATLAB 程序设计
程序流程控制之范例三
在下例中,for 循环列出先前产生的 Hilbert 矩阵的每一直行的平方和:
format short
MATLAB程序设计入门篇 程序流程控制
MATLAB 程序设计
6-1 循环指令
MATLAB 提供两种循环指令
for 循环(For Loop) while 循环(While Loop)
MATLAB 程序设计
Formats of For Loops
Format 1:
for 变数 = 向量
表达式
在上例中,矩阵 x 最初是一个 1×6 大小的零矩阵,在 for 循环中,变量 i 的值依次是 1 到 6,因此矩阵 x 的第 i 个元素的值依次被设为 1/i。
向量化编程一句可实现 x=1./[1:6]
我们接着可用分数形式来显示此数列:
>> format rat
MATLAB的控制语句
选择
控制语句
循环
for语句 While语句
Байду номын сангаас
控制语句
控制流程
if语句 switch语句 try语句 break语句 return语句 pause语句 continue语句
选择
循环语句
1、for循环语句
格式1: for 循环变量=起始值:步长:终止值 循环体 end 例子: sum=0; for i=1:100 sum=sum+i; end
LOGO
MATLAB 基础
MATLAB 控制语句
MATLAB基础
1、 MATLAB的数据类型 2、 MATLAB的运算符 4、 MATLAB的控制语句 5、 MATLAB的M文件
控制语句
循环
for语句 While语句
控制语句
控制流程
if语句 switch语句 try语句 break语句 return语句 pause语句 continue语句
if x>=1
y=10
elseif x>-1&x<1
y=0
else
y=-10
end
问题:求矩阵A=magic(5)的最大元素。
A=magic(5) a=A(1); for i=2:25 if A(i)>a a=A(i); n=i; end end
2、switch语句 格式
switch 表达式(%可以是标量或字符串) case 值1 语句1 case 值2 语句2 …. otherwise 语句3 end
次循环
LOGO
选择
1、if,else,elseif语句 格式
① if 逻辑表达式 执行语句 end ③ if 逻辑表达式1 执行语句1 elseif 逻辑表达式2 执行语句2 elseif 逻辑表达式3 执行语句3 …. end
MATLAB的程序流程语句
2
b = [ 2 4 6 8 1 0 ] ; %建立 b 矩阵 c=a; %矩阵 a 与矩阵 b 交换,设中间变量 c a=b; b=c; a %输出 a 矩阵、b 矩阵 b 然后激活 MATLAB 的命令窗口,可看到输出为: >> a= 2 b= 1 3 4 7 9 4 6 8 10
2)打开已有的 M 文件 打开已有的 M 文件,也有 3 种方法: (1)菜单操作:从 MATLAB 命令窗口的 File 菜单中选择 Open 命令,则 屏幕出现 Open 对话框,在文件名对话框中选中所需打开的 M 文件,在文本编 辑窗口可以对打开的 M 文件进行编辑修改。编辑完成后,将 M 文件存盘。 (2)命令操作:在 MATLAB 命令窗口输入命令:edit <文件名>,回车 后则打开指定的 M 文件。 (3) 命令按钮操作: 单击 MATLAB 命令窗口工具栏上的打开命令按钮 , 再从弹出的对话框中选择所需打开的 M 文件。 2、 M 文件的调试 1)文本编辑器窗口 在文本编辑器窗口菜单栏和工具栏的下面有三个区域,右侧的大区域是程 序窗口,用于编写程序;最左面区域显示的是行号,每行都有数字,包括空行, 行号是自动出现的,随着命令行的增加而增加;在行号和程序窗口之间的区域 上有一些小横线,这些横线只有在可执行行上才有,而空行、注释行、函数定 义行等非执行行的前面都没有,在进行程序调试时,可以直接在这些横线上点 击鼠标以设置或去掉断点。 2)文本编辑器窗口的调试功能 在编辑调试器的菜单中有许多通用的菜单选项,如 File,Window,Help 等,这些菜单的使用方法与其他软件的使用方法相似,这里就不再介绍,下面 介绍几个有特定功能的菜单项: (1)Edit 菜单:该菜单中有一组特别的操作用于程序行的查找,这些操作 对于程序内容的查找和修改是非常有用的。 Go To Line... 到达指定行号处
Matlab实验三答案
Matlab实验三答案实验三 MATLAB语言的程序设计一、实验目的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写和设计4、了解和熟悉跨空间变量传递和赋值二、实验基本知识:1、程序流程控制语句for循环结构语法:for i=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。
2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while 循环结构语法:while 逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。
若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。
若表达式的值为假,则程序执行end之后的语句。
2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。
(执行循环体的次数不确定;每一次执行循环体后,一定会改变while 后面所跟关系式的值。
)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endif-else-end分支结构if 表达式1语句1else if 表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。
2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。
3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。
switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后面的表达式可以是任何类型,如数字、字符串等。
2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。
MATLAB程序的流程控制
用 Matlab 语言编写的程序称为 M 文件。 M 文件以 .m 为扩展名。
M 文件是由若干 Matlab 命令组合在一起构成的,它可以 完成某些操作,也可以实现某种算法。事实上,Matlab 提供 的内部函数以及各种工具箱,都是利用 Matlab 语言开发的 M 文件。用户也可以结合自己的工作需要,开发自己的程序 或工具箱。
打开已有的 M 文件
菜单操作 ( File Open ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 双击 M 文件
命令文件举例
例:编写一个命令文件将华氏温度转化为摄氏温度 5 c ( f 32) 9 新建一个 M 文件 f2cs.m,内容如下:
M 文件根据调用方式的不同可以分为两类:
Script:脚本文件/命令文件 Function:函数文件
M 文件的建立与打开
M 文件是一个文本文件,可以用任何文本编辑器来建 立和编辑,通常使用 Matlab 自带的 M 文件编辑器。 新建一个 M 文件
菜单操作 ( File New M-File ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 )
数据输出 disp
数据的输出:disp disp(X)
输出变量 X 的值,可以是数值矩阵或字符串
例:
>> A='Hello,Tom !'; >> disp(A) >> B=[1 2 3; 4 5 6; 7 8 9]; >> disp(B)
例 求一元二次方程ax2 +bx+c=0的根。 程序如下: function x = myfun3(a,b,c) 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))]);
实验三MATLAB的程序设计
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));
matlab流程控制语句
matlab流程控制语句下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!MATLAB流程控制语句:理解与应用MATLAB,作为一款强大的数值计算和数据可视化工具,其编程语言包含了丰富的流程控制语句。
MATLAB编程_控制语句
2.while语句 while语句也是一种循环语句,一般用于 事先不能确定循环次数的情况。 调用格式为: while 表达式 循环体语句 end 其执行过程为:若表达式成立,则执行循 环体语句,执行后再判断条件是否成立, 如果不成立则跳出循环。
exp: i=0; while i<10 i=i+1 end
程序如下: 方法一:
2 cos( x 1) x 1, x 10 y x x x, x 10
。
x=input('请输入x的值:');
if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y
方法二:
例: 写出下列程序的执行结果。
s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a s=s+k; end disp(s');
思考下列程序,写出其运行结果:
A=[1,2,9,18;24,31,12,21]; for a=A b=a(2)-a(1) end
2.6 MATLAB控制语句
2.6.1 循环结构 1.for语句 通常用来执行循环次数已知的情况,可按指定 次数来重复执行循环体中的内容。 基本调用格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式2 的值为步长,表达式3的值为循环变量的终值。步 长为1时,表达式2可以省略。
exp2: for i=1:6 a(i)=i; if i>3 a(i)=6-i; end end a'
(2) 双分支if语句: if 表达式 语句组1 else 语句组2 end 当表达式成立时,执行语句组1,否则 执行语句组2,语句组1或语句组2执行后, 再执行if语句的后继语句。
Matlab流程控制
Matlab流程控制1-2、重复命令最简单的重复命令是for 圈(for-loop),其基本形式为:for 变数 = 矩阵;运算式;end其中变数的值会被依次设定为矩阵的每一行,来执行介於for和end之间的运算式。
因此,若无意外情况,运算式执行的次数会等於矩阵的行数。
举例来说,下列命令会产生一个长度为6的调和数列(Harmonic sequence):x = zeros(1,6); % x是一个16的零矩阵for i = 1:6,x(i) = 1/i;end在上例中,矩阵x最初是一个16的零矩阵,在for 圈中,变数i的值依次是1到6,因此矩阵x的第i个元素的值依次被设为1/i。
我们可用分数来显示此数列:format rat % 使用分数来表示数值disp(x)1 1/2 1/3 1/4 1/5 1/6for 圈可以是多层的,下例产生一个16的Hilbert矩阵h,其中为於第i 列、第j行的元素为:h = zeros(6);for i = 1:6,for j = 1:6,h(i,j) = 1/(i+j-1);endenddisp(h)1 1/2 1/3 1/4 1/5 1/61/2 1/3 1/4 1/5 1/6 1/71/3 1/4 1/5 1/6 1/7 1/81/4 1/5 1/6 1/7 1/8 1/91/5 1/6 1/7 1/8 1/9 1/101/6 1/7 1/8 1/9 1/10 1/11小提示:预先配置矩阵在上面的例子,我们使用zeros来预先配置(Allocate)了一个适当大小的矩阵。
若不预先配置矩阵,程式仍可执行,但此时MATLAB需要动态地增加(或减小)矩阵的大小,因而降低程式的执行效率。
所以在使用一个矩阵时,若能在事前知道其大小,则最好先使用zeros或ones等命令来预先配置所需的记忆体(即矩阵)大小。
在下例中,for 圈列出先前产生的Hilbert矩阵的每一行的平方和:for i = h,disp(norm(i)^2); % 印出每一行的平方和end1299/871282/551650/2343524/2933559/4431831/8801在上例中,每一次i的值就是矩阵h的一行,所以写出来的命令特别简洁。
第6章 MATLAB程序设计
如果用户调用toc时不指定输出参数t, 例如: >> tic >> toc elapsed_time = 4.0160 函数在命令窗口显示函数工作空间变量 elapsed_time 的值,但在MATLAB命令工作空间里不给输出参数t赋任 何值,也不创建变量t。
如果如果用户调用toc时指定输出参数t,例如: >> tic >> out=toc out = 2.8140 则以变量out的形式返回到命令窗口,并在 MATLAB命令工作空间里创建变量out。
function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. if nargin == 2 n = 100; end n = double(n); y = [d1+(0:n-2)*(d2d1)/(floor(n)-1) d2];
function t=toc % TOC Read the stopwatch timer.
Global TICTOC If nargout<1 elapsed_time=etime(clock,TICTO C) else t=etime(clock,TICTOC); end
(8)全局变量可以为编程带来某些方便,但却破坏了函 数对变量的封装,所以在实际编程中,无论什么时候都应 尽量避免使用全局变量。如果一定要用全局变量,建议全 局变量名要长、采用大写字母,并有选择地以首次出现的 M文件的名字开头,使全局变量之间不必要的互作用减至 最小。 (9)MATLAB以搜寻脚本文件的同样方式搜寻函数文件。 例如,输入>>cow,MATLAB首先认为cow是一个变 量;如果它不是,那么MATLAB认为它是一个内置函数; 如果还不是,MATLAB检查当前cow.m的目录或文件夹; 如果仍然不是,MATLAB就检查cow.m在MATLAB搜 寻路径上的所有目录或文件夹。