MATLAB教程三:MATLAB程序流程控制

3.1 顺序结构

文件的建立:

文件分为:

脚本文件:是可在命令行窗口直接执行的文件,也叫命令文件。

函数文件:是定义一个函数,不能直接执行,而必须以函数调用的方式来调用它。

% 建立脚本文件f1.m。 
A=[1,2,3;4,5,6]; 
B=[1,2;3,4;5,6]; 
C=A*B 

% 在命令行窗口运行脚本文件。 
>> f1 
C = 
 	22 	28 
 	49 	64 
% 建立函数文件f2.m。 
function C=f2(A,B) 
	C=A*B; 
	
% 在命令行窗口调用函数文件。 
>> A=[1,2,3;4,5,6]; 
>> B=[1,2;3,4;5,6]; 
>> C=f2(A,B) 
C = 
 	22 	28 
 	49 	64

数据操作:

数据的输入

  • A=input(提示信息,选项)

数据的输出

  • disp(输出项)
>>  A=input('请输入变量A的值:');
请输入变量A的值:100
>> disp(A)
   100

3.2 选择结构

if 语句的选择结构:

例:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。(在脚本文件中编写)

  • lower 函数:将字符或字符串转化为小写。
  • upper 函数:将字符或字符串转化为大写。
  • str2double 函数:将字符数组或字符串标量转换为数值矩阵。
c=input('请输入一个字符:','s');
if c>='A' && c<='Z'
	disp(lower(c))
elseif c>='a' && c<='z'
	disp(upper(c))
elseif c>='0' && c<='9'
	disp(str2double(c)^2)
else
	disp(c)
end

switch语句的选择结构:

例:PM2.5 是指大气中直径小于或等于2.5微米的可入肺颗粒物,是衡量空气质量的重要指标。假定空气质量等级以 PM2.5 数值划分为6级。 PM2.5 数值在[0,35)空气质量为优,[35,75)为良,[75,115)为轻度污染,[115,150)为中度污染,[150,250)为重度污染,大于等于250为严重污染。编写程序,输入PM2.5数值,输出空气质量等级。

  • num2cell 函数:将数值矩阵转化为单元矩阵。
g=input('请输入PM2.5值:'); 
switch fix(g) 
	case num2cell(0:34) 
		disp('空气质量优'); 
	case num2cell(35:74) 
		disp('空气质量良好'); 
	case num2cell(75:114) 
		disp('空气质量轻度污染'); 
	case num2cell(115:149) 
		disp('空气质量中度污染'); 
	case num2cell(150:249) 
		disp('空气质量重度污染'); 
	otherwise 
		disp('空气质量严重污染'); 
end

3.3 循环结构

for语句的循环结构:

格式:

​          for 循环变量 = 初值:步长:终值

​                  循环体语句

​          end

例:计算10以内的奇数的和

% 建立脚本文件f.m。
sum = 0;
for i=1:2:10               % 如果步长为 1 ,可以省略。
    sum = sum + i;
end
sum

% 在命令行窗口运行脚本文件。
>> f
sum =
    25

while语句的循环结构:

while语句:

例:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

msum=0; 
n=0; 
x=input('Enter a number (end in 0):'); 
while x~=0 
	msum=msum+x; 
 	n=n+1; 
	x=input('Enter a number (end in 0):'); 
end 
if n>0 
 	msum 
 	mean=msum/n 
end

break语句和continue语句:

  • break:用来跳出循环体,结束整个循环。

  • continue:用来结束本次循环,接着进行下一次是否执行循环的判断。

例:求[100,200]之间第一个能被21整除的整数。

for n=100:200 
	if rem(n,21)~=0 
 		continue 
 	end 
 	n 
 	break 
end

3.4 函数文件的定义与调用

函数文件的基本结构:

格式:

​          function 输出形参表=函数名(输入形参表)

​          注释说明部分

          函数体语句

1、函数文件名通常由函数名再加上扩展名.m组成,函数文件名与函数名也可以不相同。当函数文件名与函数名不相同时, MATLAB将忽略函数名,调用时使用函数文件名。

2、return语句表示结束函数的执行。通常,在函数文件中也可以不使用return语句,那么被调用函数执行完成后会自动返回。

例:编写函数文件,求半径为r的圆的面积和周长。

function [s,p]=fcircle(r) 
	s=pi*r*r; 
	p=2*pi*r; 

函数调用:

格式:[输出实参表]=函数名(输入实参表)

% 在MATLAB命令行窗口调用前面定义的fcircle函数。
>> [s,p]=fcircle(10) 
s = 
 	314.1593 
p = 
 	62.8319

匿名函数:

格式:函数句柄变量=@(匿名函数输入参数) 匿名函数表达式

>> f=@(x,y) x^2+y^2 
f = 
 	@(x,y)x^2+y^2 
>> f(3,4) 
ans = 
 	25
 	
>> h=@sin
h = 
 	@sin 
>> h(pi/2) 
ans = 
 	1

函数的递归:

例:利用函数的递归调用,求n!。
n ! = { 1 ( n < = 1 ) n ( n − 1 ) ! ( n > 1 ) n!= \begin{cases} 1&(n<=1) \\ n(n-1)!&(n>1) \end{cases} n!={1n(n1)!(n<=1)(n>1)

function f=fact(n) 
if n<=1 
 	f=1; 
else 
 	f=fact(n-1)*n; 
end

3.5 函数参数与变量的作用域

函数参数的可调性:

  • nargin:输入实参的个数

  • nargout:输出实参的个数

% 建立函数文件test.m。
function fout=test(a,b,c) 
if nargin==1 
 	fout=a; 
elseif nargin==2 
 	fout=a+b; 
elseif nargin==3 
 	fout=(a*b*c)/2; 
end

% 在命令行窗口运行函数文件。
>> fout=test(2) 
fout = 
 	2 
>> fout=test(2,3,2) 
fout = 
 	6 

全局变量与局部变量:

  • 局部变量:在程序中只在特定过程或函数中可以访问的变量。
  • 全局变量 :所有的函数都可以对它进行存取和修改。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值