matlab 第四章 Matlab语言结构与编程
《Matlab编程》PPT课件
• switch S(i).Marks
• case 100
• S(i).Rank='满分';
• case a
• S(i).Rank=' 优秀';
• case b
• S(i).Rank=' 良好';
• case c
• S(i).Rank=' 及格';
• otherwise • S(i).Rank='不及格'; • end • end •% • disp(['学生姓名 ',' 得分 ',' 等级']);disp(' ') • for i=1:5; • disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).R
例4-4
• if c>='A' & c<='Z'
• disp(setstr(abs(c)+abs(‘a’)-abs(‘A’))); % char代替setstr
• elseif c>='a'& c<='z'
•
disp(setstr(abs(c)- abs('a')+abs('A')));
• elseif c>='0'& c<='9'
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
•
disp(m)
•
end
• end
• 例4-9 已知
matlab的基本语法和编程概念
一、MATLAB语言概述MATLAB是一种专门用于科学计算和工程应用的高级语言和交互式环境。
它可以实现矩阵运算、绘图功能、数据分析等各种功能,被广泛应用于控制系统设计、信号处理、图像处理等领域。
MATLAB的语言能力强大,语法简洁,可读性高,非常适合用于快速原型设计和算法验证。
二、MATLAB的基本数据类型MATLAB支持多种数据类型,包括常见的数值类型(例如整型、浮点型)、字符型、逻辑型和复数型等。
其中,数值类型占据了绝大部分,常用的数值类型包括:1. 整型:int8、int16、int32、int642. 浮点型:single、double3. 复数型plex4. 字符型:char5. 逻辑型:logical三、MATLAB的变量与运算符1. 变量:在MATLAB中,变量的命名遵循标识符命名规则,可以包括字母、数字和下划线,但不能以数字开头,也不能使用MATLAB的保留字作为变量名。
变量的赋值可以使用等号“=”,例如:a = 3。
2. 运算符:MATLAB支持各种常见的数学运算符,例如加减乘除运算符“+、-、*、/”;逻辑运算符“、||、~, xor”;比较运算符“>、<、==、~=”等。
四、MATLAB的控制结构MATLAB支持多种控制结构,包括条件语句、循环语句和程序结构等。
1. 条件语句:MATLAB中的条件语句包括if语句和switch语句,其中if语句用于根据条件的真假执行不同的代码块,switch语句则用于多个条件之间的选择。
2. 循环语句:MATLAB提供了for循环和while循环两种循环结构,用于重复执行特定的代码块,实现程序的迭代。
3. 程序结构:MATLAB中的程序结构包括函数和脚本两种形式,函数是可独立调用的代码块,而脚本则是按顺序执行的代码文件。
五、MATLAB的数组与矩阵运算MATLAB中的数组和矩阵运算是其最强大的特性之一,它提供了丰富的矩阵运算函数和操作符,使得矩阵运算变得非常简洁高效。
matlab第四章课件
4.1.1 M文件的分类
M文件是由若干 Matlab 命令组合在一起构成的,它可 以完成某些操作,也可以实现某种算法
事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言编写的 M文件 用户也可以结合自己的工作需要,开发自己的程序或工具箱
M文件根据调用方式的不同可以分为两类: Script file:命令文件/脚本文件 Function file:函数文件
例2 输入x,y的值,并将它们的值互换后输出(swap.m)。 x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y); 例3 求一元二次方程ax2 +bx+c=0的根(root.m)。 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))]);
例如:
s=0; a=[12 13 14;15 16 17;18 19 20;21 22 23] for k=a s=s+k; end disp(s); 该程序的功能是求矩阵各行元素之和,执行结果是: 39 48 57 66
while语句
while expr (条件) statement(循环体语句) end 若expr成立,则执行循环体的内容,执行后 再判断条件是否为真,如果不成立则跳出循环体。
第4章 MATLAB程序设计 [MATLAB大学教程][肖汉光,邹雪,宋涛]
case {2,3,4}
%价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
7 16 27 40 55 72 ans = Error using ==> mtimes Inner matrix dimensions must agree.
命令文件可以直接运行,在MATLAB命令窗口输入命令 文件的名字,就会顺序执行命令文件中的命令,而函数 文件不能直接执行,而要以函数调用的方式来调用它。
4.1.2 M文件的建立与打开
M文件是一个文本文件,它可以用任何编辑程序来建立和编辑, 而一般常用且最为方便的是使用MATLAB提供的文本编辑器。 1.建立新的M文件
例4.6 矩阵乘法运算要求两矩阵的维数相容,否则会出错。 先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。
程序如下:
A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12];
try
C=A*B;
catch
C=A.*B;
end
C lasterr
%显示出错原因
4.2 结构化程序设计
>> fexch C=
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
程序如下:
MATLABch04MATLAB程序设计基础知识Word版
Matlab-ch04(MATLAB程序设计-基础知识)第4讲M A T L A B程序设计-基础知识内容提要:本章主要介绍MA TLAB程序设计的有关基础知识。
重点及难点:MA TLAB作为一种高级应用软件,除了命令行操作的直接交互方式以外,还有自己的编程语言。
为了充分发挥和体现MA TLAB的功能,必须掌握MA TLAB的程序设计。
本讲详细介绍MA TLAB程序设计的基本知识,通过本章的学习,可以掌握关于MA TLAB程序设计的方法,增强设计应用程序的能力。
MA TLAB不仅是一个功能强大的工具软件,更是一种高效的编程语言。
MA TLAB的编程效率比常用的BASIC、C、FORTRAN和PASCAL等语言要高得多,而且容易维护。
MA TLAB软件即MATLAB语言的编程环境,M文件也就是用MA TLAB语言编写的程序代码文件。
§4.1 MATLAB的变量和表达式一、MATLAB的变量及其类型1、变量命名规则在MATLAB中,对变量(包括函数)命名时应遵循以下规则:(1)变量名(包括函数名)对字母的大小写敏感,即MATLAB区分字母的大小写;(2)变量名的第一个字符必须为英文字母,而且不能超过31个字符;(3)变量名由英文字母、数字和下划线组成,即变量名可以包含下连字符、数字,但不能为空格符(Backspace)和标点。
例如,my_var_30就是合法的变量名。
2、局部变量和全局变量(1)局部变量只在每个函数体内定义、使用,而不能从其他函数和MATLAB工作空间访问的变量称为局部变量。
(2)全局变量在多个函数及MATLAB函数中都能使用的变量称为全局变量。
通常每个函数体内都有自己定义的变量,不能从其他函数和MA TLAB工作空间访问这些变量,这就是局部变量。
如果要使某个变量在几个函数及MATLAB函数中都能使用,它就是全局变量。
(3)局部变量和全局变量的区别全局变量名应尽可能大写,并用“global'’声明。
Matlab编程语言结构
06 编程语言结构1 条件语句结构1.1 单分支if 语句调用格式:if 条件表达式执行语句体end1.2 双分支if 语句调用格式:if 条件表达式1执行语句体1else执行语句体2end1.3 多分支if 语句调用格式:if 条件表达式1执行语句体1 elseif条件表达式2执行语句体2...elseif 条件表达式n-1执行语句体n-1else执行语句体nend当有多个条件时,如果条件1 为真,运行语句体1,然后跳出if…else…end 结构;如果条件1 为假,再判断条件2,如果条件2 为真,运行语句体2,然后跳出if…else…end结构;以此类推.1.4 S w itch调用格式:swtich 开关表达式case 表达式1执行语句体1case 表达式2执行语句体 2 ……case 条件表达式n-1 执行语句体 n-1 otherwise执行语句体 n end如果开关表达式满足表达式 1,则执行语句体 1,然后跳出 swithch …case 结构;如果开关表 达式不满足表达式 1,但满足表达式 2,则执行语句体 2,然后跳出 swithch …case 结构;以此类 推.s in x 例1 已知分段函数 y x 0 ,求x 2.1 的值. x1x 0【matlab 命令 1】建立 M 文件x=input('请输入 x=') %键盘输入数据 if x==0y=1; elseend yy=sin(x)/x; 【输出结果 1】 请输入 x=2.1x =2.1000y =0.4111 【matlab 命令 2】 建立 M 文件 function y=fu(x) if x==0y=1; else endy=sin(x)/x;在Matlab 命令窗口输入>> fu(2.1)【输出结果2】ans =0.4111若某学生成绩67 分,请编程将其转换成五级制成绩.【matlab 命令】x=input('请输入x=');switch fix(x/10); %fix 为向零方向取整函数case{9,10}f='优';case{8}f='良';case{7}f='中';case{6}f='及格';otherwise f='不及格';endf【输出结果】请输入x=67f =及格2 循环语句结构2.1 for 语句调用格式为:for 循环变量=初值:步长:终值循环语句体end2.2 while 语句调用格式为:while 条件表达式真循环语句体end只有表达式的逻辑值为真时,才执行循环语句体.表达式可以是数组,如果表达式可以是数组当所有元素为真时才执行循环语句体.100 2 3 4例3(1)求 i的值;(2)生成矩阵 3 45i 1【matlab 命令1】a=0;for i=1:100a=a+i;4 5 6enda【输出结果1】a =5050【matlab 命令2】a=zeros(3,3);for i=1:3for j=1:3a(i,j)=i+j;endaend【输出结果2】a =2 3 43 4 54 5 650例4 (1)计算 (2i 1) ;(2)计算s 2 2 52 82 112 952 .i 0【matlab 命令1】n=input('请输入n=');sum=0;i=0;while i<=nsum=sum+(2*i+1);i=i+1;endsum【输出结果1】请输入n=50sum =2601【matlab 命令2】s=0;i=2;while i<=95s=s+i^2;i=i+3;ends【输出结果2】s =998243 matlab 编程实例例5 (1)找出sin 1, tan1, cos1, ln 3, e 0.2 中的最大者(2)若一方程的求解结果为:8 ;x13 ;x2x32 ;x46 ;x59 ;x60 .请用计算机将这六个解按递增顺序重新排列.(3)已知数组A (5,6.5,2 2i) ,请把实数和虚数分开.【matlab 命令1】a=[sin(1),tan(1),cos(1),log(3),exp(0.2)];Max=a(1);ind=1;for i=2:5if Max<a(i)Max=a(i);ind=i;endMaxindend【输出结果1】Max =1.5574ind =2【matlab 命令2】A=input('请输入A=');for j=1:5for i=1:(6-j)if A(i)>A(i+1)t=A(i);A(i)=A(i+1);A(i+1)=t;end A endend【输出结果2】请输入A=[8,3,2,6,9,0]A =0 2 3 6 8 9 【matlab 命令3】clearA=[5,6.5,2+3*i,3.5,1+2*i];real_array=[];%实数数组complex_array=[];%虚数数组for i=1:length(A)if isreal(A(i))==1real_array=[real_array A(i)];end elseendcomplex_array=[complex_array A(i)];real_arraycomplex_array【输出结果3】real_array =5.00006.5000 3.5000complex_array =2.0000 +3.0000i 1.0000 + 2.0000i例6 设银行年利率为11.25%,将10000 元钱存入银行,问多长时间会连本带利翻一番?解设x 年连本带利翻一番,则数学模型为10000(1 x 20000【matlab 命令】money=10000;years=0;while money<20000years=years+1;money=money*(1+0.1125);endyearsmoney【输出结果】years =7money =2.1091e+004需要七年会连本带利翻一番.例7鸡兔合笼,头36,脚100,求鸡、兔各几只?解设鸡x 只,兔y 只.由题意得 x y 362 x y 100100 2xx 4 36 变形得y100 2x4【matlab 命令】i=1;while i>0if rem(100-i*2,4)==0 & (i+(100-i*2)/4)==36 %符号"&"是逻辑与运算,表示同时成立。
全面了解Matlab编程语言
全面了解Matlab编程语言第一章:Matlab简介Matlab是一种专业的、高效的数值计算与科学数据可视化编程语言,被广泛应用于工程学、科学研究和商业领域。
它具有强大的矩阵运算能力和丰富的内置函数,能够方便地进行数值分析、信号处理、图像处理、机器学习等任务。
第二章:语法和基本数据类型Matlab的语法采用类似于C语言的风格,使用脚本文件(.m文件)进行编程。
Matlab支持多种基本数据类型,如数值型、字符型、逻辑型等。
数值型包括整数、浮点数和复数,而字符型则用于处理文本数据。
逻辑型用于逻辑运算和判断。
第三章:变量和运算符在Matlab中,变量可以直接赋值并进行运算。
Matlab支持各种算术运算符、关系运算符和逻辑运算符,可以进行常见的数学运算,如加减乘除,以及逻辑判断,如与、或、非等运算。
第四章:控制流程和循环Matlab提供了丰富的控制流程和循环结构,包括条件判断、循环语句等。
通过使用if语句和switch语句,可以根据条件来执行不同的语句块。
同时,通过for循环和while循环,可以重复执行一定次数的代码块。
第五章:函数和脚本Matlab中函数的定义和调用非常简单,可以将一组语句封装为一个函数,并在需要时进行调用。
函数可以接受多个输入参数和输出结果。
脚本文件则是一组按顺序执行的Matlab语句。
函数和脚本的灵活使用可以提高Matlab程序的复用性和可维护性。
第六章:矩阵和向量运算矩阵是Matlab中重要的数据结构之一,它可以用于表示二维表格、图片和图像等。
Matlab提供了丰富的矩阵运算函数,如矩阵乘法、矩阵求逆、特征值分解等。
通过索引和切片操作,可以灵活地访问矩阵和向量的元素。
第七章:图形绘制和数据可视化Matlab具有强大的图形绘制和数据可视化能力,可以用于绘制二维和三维图形、制作动画效果、可视化数据等。
Matlab提供了丰富的图形绘制函数和工具箱,用户可以自由选择不同的绘图风格和参数设置。
Matlab讲义-第四章Matlab语言程序设计基础2-10
函数m文件保存的文件名必须与其函数名相同;
输入参数用小括号括起来,输出参数则用方括号括 起来,如果参数多于1个,用逗号隔开;当函数无输 出参数时,输出参数项空缺或者用空的中括号表示。 必须由其它m文件来调用
4.3.2ቤተ መጻሕፍቲ ባይዱ数文件
function [area, volume]=area_volume(r)
if data(k)==0 BPSKCode(k)=1; else BPSKCode(k)=-1; end end
【练习】按要求绘制如下曲线并加标记。
data=[1 0 1];
二进制传输码元 1
横坐标:t
0.8
0.6
起始值:步长:终止值 0.4
0
dt length(data) 0.2
dt=0.01;
end
if 条件式1 语句组1;
else 语句组3;
end
% 注意:elseif中间无空格
if 条件式1 语句组1 ;
elseif 条件式2 语句组2
else 语句组3;
end
执行过程:条件式的结果为真执行相应的语句组
1或全1
注意: 条件式的结果为真执行相应的语句组
结果?
全1矩阵
非全1矩阵
clc,clear x=-3:0; if x>=-3 & x<=0
脚本是对工作空间中的现有数据进行操作,或 创建一个新数据,而且脚本所创建的任一变量在 脚本运行完都保留在工作空间中以便进一步使用。
clc,clear S=0; for x=2:2:100
S=S+x; end S
脚本文件举例
【例】:Lx1.m-键盘提示输入半径,计算一个球 的表面积和体积
MATLAB编程语言结构
编程语言结构一、条件语句结构1.单分支if语句调用格式:if条件表达式执行语句体end2.双分支if语句调用格式:if条件表达式执行语句体1else执行语句体2end3.多分支if语句调用格式:if条件表达式1执行语句体1else if 条件表达式2执行语句体2……………………else if 条件表达式n-1执行语句体n-1else执行语句体nend4.swich 语句调用格式:switch 开关表达式case 表达式1执行语句体1case 表达式2执行语句体2…………………….case 表达式n-1执行语句体n-1otherwise执行语句体nend二、循环语句结构1.for 语句调用格式:for 循环变量=初值:步长:终值循环语句体end2.while 语句调用格式为:while 条件表达式循环语句体 end三、实验举例1. 已知分段函数sin ,01,0x x y x x ⎧≠⎪=⎨⎪=⎩,求 2.1x =的值。
x=input(‘请输入x=’)if x==0y=1;elsey=sin(x)/x;endy2. 求 1001i i =∑的值a=0;for i=1:100;a=a+i;enda3. 计算222225895.s =++++s=0;i=2;while i<=95s=s+s^2;i=i+3;ends。
MATLAB第四章(刘卫国编)
25
例4.9 求定积分。 以梯形法为例,程序如下: a=0;b=3*pi; n=1000; h=(b-a)/n; x=a; s=0; f0=exp(-0.5*x)*sin(x+pi/6); for i=1:n x=x+h; f1=exp(-0.5*x)*sin(x+pi/6); s=s+(f0+f1)*h/2; f0=f1; end s
例4.13 求[100,200]之间第一个能被21整除 的整数。 程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
2
例4.1 建立一个命令文件将变量a,b的值互换,然后 运行该命令文件。 程序1: 首先建立命令文件并以文件名exch.m存盘: clear; a=1:10; b=[11,12,13,14;15,16,17,18]; c=a;a=b;b=c; a b 然后在MATLAB的命令窗口中输入exch,将会执行 该命令文件。
16
当表达式的值等于表达式1的值时,执行 语句组1, 当表达式的值等于表达式2的值时,执行 语句组2,…, 当表达式的值等于表达式m的值时,执 行语句组m, 当表达式的值不等于case所列的表达式 的值时,执行语句组n。 当任意一个分支的语句执行完后,直接 执行switch语句的下一句。
17
例4.5 某商场对顾客所购买的商品实行打折 销售,标准如下(商品价格用price来表示): price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣 5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。
04Matlab4(M文件)
② while 语句 用于不知道重复次数的循环可以用while语句。其一般格式为:
while <关系表达式> 语句 (循环体) end 当关系表达式的值为1(真) 时,执行循环,在执行循环过 例4、由ex的级数展开式求ex的值:
x=[1:0.5:4]; k=1;ex=1;dlt=1; while any(dlt>=0.0001) dlt=dlt.*x./k; ex=ex+dlt; k=k+1; end ex
量。这表明函数文件对于变量的运算是在函数本身的工作空
间内进行的,它和MATLAB的命令窗口中的工作空间是相互
独立的。
⑸为增加函数的可读性,通常在函数定义行后是注释行,以%开头.
function [mean,stdev]=stat(x) % STAT Mean and standard deviation % For a vector x,stat(x) returns the mean and standard deviation of x. % for a matrix x,stat(x) returns two row vectors containing respectively % the mean and standard deviation of each column. [m,n]=size(x); if m==1 m=n; end mean=sum(x)/m; stdev=sqrt(sum(x.^2)/m-mean.^2)
第四章Matlab语言数据结构1
例3:将二进制按每3位转为十进制数 clc,clear
Xfram=[0 1 1 1 1 1]; Xfram_re=reshape(Xfram,3,2);
%每3位转为十进制数
NumTrans=zeros(1,2);%放转换后的十进制数
for i=1:2
NumTrans(i)=bin2dec(num2str(Xfram_re(:,i)'));
Thank you for your cooperation
4.1.2 结构和单元阵列
在工程和管理系统中,常常需要分层次地 把一些有一定联系但不同类型、不同规模 的数据组织起来成为一个变量。 如:要为一个班的学生建立一套student管 理档案,记录每个学生的三个项目:姓名 (字符串)、出生日期(字符串)、四门 课(高数,英语,马列,体育)的成绩 (数组)。
单元型:cell
结构型:struct Jave类 函数句柄型
§4.1 Matlab语言的数据结构
MATLAB的数据类型
array char numeric double sparse cell struct user- object -
storage
各种数据类型的层次关系
常用基本数据类型 double(双精度数值) char(字符) storage(存储型):只用于内存的有效存储 sparse(稀疏数据):专门用于处理稀疏矩阵 cell(单元数组):
结构阵列的数据索引举例
clc,clear ='John'; student.birthday='1985.06.15'; student.score=[85,85,87,97]; student(2).name=' Alice '; student(2).birthday=' 1986.01.20 '; student(2).score=[77,71,75,76]; ans = 85 85 ans = 77 71 87 97 75 76
MATLAB-第四章
例:使用for结构计算1+2+3+„+100
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
clear sum=0; for i=1:1:100 sum=sum+i; end sum
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 3 循环结构
• while语句
while 表达式 循环体 end
三、数组 2、二维数组 • 文件生成法 通过M文件,txt文件,excel和dat文件生成二 维数组。MATLAB提供了一系列从文件导 入数据的函数,如:load,xslread和 csvread等。
第四章 MATLAB的编程基础
三、数组 2、二维数组 二维数组的引用:
A(m,n);引用二维数组的第m行n列的元素 A(m,:): 二维数组中的第m行元素。 A(:,n):二维数组中第n列元素。 A(m,n1:n2):二维数组中第m行中的n1至n2个元素。 A(m1:m2,n):二维数组中第n列中的m1行至m2行个元素。 A([m1 m2],n);二维数组的第n列中m1行和m2行的元素 A(m,[n1 n2]);二维数组的第m行中n1列和n2列的元素
程序模块1 elseif 表达式2 程序模块2 … elseif 表达式n 程序模块n else 程序模块n+1 end
• if语句
书例5-2(page86): 将百分制的学生成绩转换为五级制的成绩输出。
clear 第四章 MATLAB的编程基础 n=input('输入n= '); if n>=90 r='A' elseif n>=80 r='B' elseif n>=70 r='C' elseif n>=60 r='D' else r='E' End
matlab04 Matlab 编程1
在Matlab命令窗口中输入 命令窗口中输入
>> f2cf(100)
调用该函数时,既有输入参数,又有输出参数; 调用该函数时,既有输入参数,又有输出参数;函数调用 完后, 、 没有被保留在工作空间。 完后,变量 c、f 没有被保留在工作空间。
case子句后面的表达式可以是标量或字符串此时表达式的值等于该单元中的某个元素时执行相应的语句循环结构循环结来自是按照给定的条件重复执行指定的语句
Matlab 程序设计
Matlab 程序设计介绍 程序设计介绍
Matlab是一种科学计算语言,但同时也具有和 、 是一种科学计算语言,但同时也具有和C 是一种科学计算语言 FORTRAN等高级语言相类似的语言特征,能方便地实 等高级语言相类似的语言特征, 等高级语言相类似的语言特征 现程序控制。 利用Matlab的程序控制功能 , 可以将有 的程序控制功能, 现程序控制 。 利用 的程序控制功能 命令编成程序存储在一个文件中( 文件 文件) 关 Matlab命令编成程序存储在一个文件中 ( M文件 ) , 命令编成程序存储在一个文件中 然后运行该文件, 然后运行该文件 , Matlab就会自动依次执行文件中的 就会自动依次执行文件中的 命令,直到全部命令执行完毕。 命令,直到全部命令执行完毕。 程序设计中, 在Matlab程序设计中,要充分利用 程序设计中 要充分利用Matlab数据结构 数据结构 的特点,提供编程效率。 的特点,提供编程效率。
10
选择结构
选择结构是根据给定的条件成立或不成立, 选择结构是根据给定的条件成立或不成立,分别执行不 同的语句。 用于实现选择结构的语句有if语句 同的语句。Matlab用于实现选择结构的语句有 语句 用于实现选择结构的语句有 语句。 和switch语句。 语句 if 语句 单分支 if expr (条件) 条件) statement (语句组) 语句组) end
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§1 M文件的功能和形式
一、M文件的功能和特点
二、M文件的形式
1 命令文件(脚本文件) 有效指令的集合 以文件名直接调用执行
2 函数文件
3 常用人机交互命令
例
编写一ቤተ መጻሕፍቲ ባይዱ函数文件,求向量的平均值, 并调用此函数求向量1:100的平均值
function y=vectoraverage(a) % the average of a vector [m,n]=size(a); if(~(m==1|n==1) ) error('the input must be a vector.') end y=sum(a)/length(a);
再看
xmax=find(ymax~=0); xmin=find(ymin~=0); plot(y,'.-') hold on ymax(find(ymax==0))=[ ]; plot(xmax,ymax,'ro') ymax(find(ymin==0))=[ ]; plot(xmin,ymin,'mp')
switch 开关表达式 case 表达式1 语句组1 case 表达式2 语句组2 ⁞ otherwise 语句组n end %常量或字符
例:求一段输入信号的所有极大值与极小 值,找出极大极小值元素的位置,并画出 该信号及所有极大、极小值点。
clear y=randn(1,100); for i=2:99 if y(i)>y(i+1) & y(i)>y(i-1) ymax(i)=y(i); else if y(i)<y(i+1) & y(i)<y(i-1) ymin(i)=y(i); end end end
§2 程序结构
2 循环结构
例
求
i
i 1
100
3 分支结构
(1) if(条件1) 语句组1 else if(条件组2) 语句组2 ⁞ else %以上条件均不满足则执行下面语句 语句组n+1 end
例:求满足 i 1000 的m最小值
i 1
m
(2)switch - case 语句