MatlabM文件编程.ppt

合集下载

《Matlab编程》PPT课件

《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编程2

matlab编程2
18
第二节 程序控制结构
选择结构
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句. Matlab 用于实现选择结构的语句有 if -end语句 和 switch-end 语句
19
第二节 程序控制结构
if -end条件语句
单分支结构
if 条件表达式 语句组 end
双分支结构
If 条件表达式

input应用时,注意:
输入字符串时必须带单引号 单引号的输出:两个连续的单引号 若输入的是数、数学表达式,则in不能出现
11
第二节 程序控制结构
disp
数据的输出:disp
disp(X)
输出变量 X 的值,X 可以是数值矩阵或字符串
一次只能输出一个变量

>> A='Hello, Tom!'; >> disp(A) >> B=[1 2 3; 4 5 6; 7 8 9]; >> disp(B)
x=input(‘输入初值x=’);
n=input(‘输入迭代次数=’);
y(1)=x ; for k=1:n x=1/(x+1); y(k)=x;
function y=dd2(x,n) y(1)=x ; for k=1:n x=1/(x+1); y(k)=x; end
end
y
解:程序如下: function y=f(x)

语句组2
……
K=值m? 否 语句组n

语句组m
switch-end语句的 下一句
第二节 程序控制结构
switch-end 语句
关于 switch-end 语句的几点注解:

2024版matlab教程(全)资料ppt课件

2024版matlab教程(全)资料ppt课件

进行通信系统的建模、仿真和分析。
谢谢聆听
B
C
变量与赋值
在MATLAB中,变量不需要事先声明,可以 直接赋值。变量名以字母开头,可以包含字 母、数字和下划线。
常用函数
MATLAB提供了丰富的内置函数,如sin、 cos、tan等三角函数,以及abs、sqrt等数 学函数。用户可以通过help命令查看函数的
D
使用方法。
02 矩阵运算与数组操作
错误处理
阐述try-catch错误处理机制的语法、 执行流程及应用实例。
04
函数定义与调用
函数概述
阐述函数的概念、作用及分类,包括内置函数和 自定义函数。
函数调用
深入剖析函数的调用方法,包括直接调用、间接 调用及参数传递等技巧。
ABCD
函数定义
详细讲解自定义函数的定义方法,包括函数名、 输入参数、输出参数及函数体等要素。
拟合方法
利用已知数据点构造近似函数,如最小二乘法、多项 式拟合、非线性拟合等。
插值与拟合的比较
插值函数经过所有数据点,而拟合函数则追求整体上 的近似。
数值积分与微分
01
数值积分方法
利用数值技术计算定积分的近似 值,如矩形法、梯形法、辛普森 法等。
02
数值微分方法
通过数值技术求解函数的导数或 微分,如差分法、中心差分法、 五点差分法等。
02
01
矩阵运算
加法与减法
对应元素相加或相减,要求矩阵 大小相同
乘法
使用`*`或`mtimes`函数进行矩阵 乘法,要求内维数相同
点乘与点除
使用`.*`、`./`进行对应元素相乘或 相除,要求矩阵大小相同
特征值与特征向量

基础篇-第5章-M文件

基础篇-第5章-M文件
第五章 M文件编程
简单地说,M文件就是用户把要实现的命令写在一个以 .m作为文件扩展名 的文件中,然后由MATLAB系统进行解释,运行出结果,实际上M文件是一个 命令集,因此,MATLAB具有强大的可开发性与可扩展性。MATLAB中的许多 函数本身都是由M文件扩展而成的,而用户也可以利用M文件来生成和扩充 自己的函数库。
函数定义行(只存在于函数文 件)
H1行 Help文本 M文件内容
注释
函数体
具体语句的功能注释、说明
进行实际计算的代码

1. 函数定义行 函数定义行被用来定义函数名称,定义输人输出变量的数量、顺序。注意脚本式M文 件没有此行。完整的函数定义语句为: function [outl,out2,out3...]=funName(in1,in2, in3...) 其中输入变量用圆括号,变量间用英文逗号‚,‛分隔。输出变量用方括号,无输出可 用空括号[],或无括号和等号。无输出的函数定义行可以为: function funName(inl,in2,in3...) 在函数定义行中,函数的名字所能够允许的最大长度为63字符,个别操作系统有所不 同,用户可自行使用namelengthmax函数查询系统允许的最长文件名。另外函数文件 保存时,MATLAB会默认以函数的名字来保存,请不要更改此名称,否则调用所定义 的函数时会发生错误,不过脚本文件并不受此约束。funName的命名规则与变量命名 规则相同,不能是MATLAB系统自带的关键词,不能使用数字开头,也不能包含非法 字符。 2. H1行 H1行紧跟着函数定义行。因为它是Help文本的第一行,所以叫它H1行。用百分号(%) 开始。MATLAB可以通过命令把M文件上的帮助信息显示在命令窗口。因此,建议写M 文件时建立帮助文本,把函数的功能、调用函数的参数等描述出来,以供自己和别人 查看,方便函数的使用。 H1行是函数功能的概括性描述,在命令窗口提示输人命令可以显示H1行文本:

matlab基本编程

matlab基本编程


程序如下: function iftow(x) if x>0
fprintf(‘%f is a positive number\n’,x) else
fprintf(‘%f is not a positive number\n’,x) end
例 计算分段函数值。
程序如下: x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y
function f = fact(n) %函数的定义行
% Compute a factorial value. %H1行
% FACT(N) returns the factorial of N, %帮助文 本
% usually denoted by N!
% Put simply, FACT(N) is PROD(1:N). %注释
disp(setstr(abs(c)-1)); elseif c>='0'& c<='9'
disp(abs(c)-abs('0')); else
disp(c); end
例 输入数n,判断其奇偶性
程序如下: n = input('n='), if rem(n,2)==0 A = ‘even’ else A = ‘odd’ end
3.多分支if语句 语句格式为: if 条件1
语句组1 elseif 条件2
语句组2
…… elseif 条件m
语句组m
else 语句组m+1

第七讲 M文件和对象编程

第七讲  M文件和对象编程

头的第一注释行,紧跟用大写的函数名, 头的第一注释行,紧跟用大写的函数名,然后是函数的有关功 能介绍。 来查询和在线帮助使用。 能介绍。该 H1 行是供 lookfor 来查询和在线帮助使用。 ):在 (3)在线帮助文本区(help text):在 H1 行之后的用一定的 )在线帮助文本区( ): 篇幅介绍输入、输出变量的含义,调用方法等说明。 篇幅介绍输入、输出变量的含义,调用方法等说明。 开头, (4)编写和修改记录:与在线帮助区空一行,以%开头,记录 )编写和修改记录:与在线帮助区空一行, 开头 编写时间和最后修改时间,版本记录。 编写时间和最后修改时间,版本记录。 ):为清晰起见与上一行空一行 (5)函数体(function body):为清晰起见与上一行空一行。 )函数体( ):为清晰起见与上一行空一行。 这一部分即为对某一研究编写的MATLAB命令集合,包括各种 命令集合, 这一部分即为对某一研究编写的 命令集合 控制流等,我们还应适当加一些注释。 控制流等,我们还应适当加一些注释。 函数文件的编写方法。 例:我们来看一个典型的、规范的 M 函数文件的编写方法。这 我们来看一个典型的、 是有关画圆的函数。 是有关画圆的函数。
function sa = circle(r,s) %CIRCLE % % % % % circle(r) % circle(r,s) % sa=circle(r) 利用蓝实线画半径为 r 的圆周线. 的圆周线. 的圆周线. 利用串 s 指定的线色画半径为 r 的圆周线. 计算圆面积, 的蓝色圆面. 计算圆面积,并画半径为 r 的蓝色圆面. r s sa plot a circle of radii r in the line specified by s. 指定半径的数值 指定线色的字符串 圆面积

MATLAB教学课件.ppt

MATLAB教学课件.ppt
直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺 序输入各元素,同一行的各元素之间用空格或逗号分隔,不同 行的元素之间用分号分隔。(也可以用回车键代替分号)
例如,键入命令: A=[1 2 3;4 5 6;7 8 9] 输出结果是: A = 1 2 3
456
789
四. 矩阵运算
1.建立矩阵
3.图形功能
MATLAB提供了两个层次的图形命令:一种是对图形句柄进 行的低级图形命令,另一种是建立在低级图形命令之上的高 级图形命令。利用MATLAB的高级图形命令可以轻而易举地 绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、 视角和光照设计、色彩精细控制等等。
4.应用工具箱
基本部分和各种可选的工MATLAB最基本的数据对象,MATLAB的大部分运算 或命令都是在矩阵运算的意义下执行的。在MATLAB中,不需 对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的 内容自动进行配置。
1.建立矩阵
建立矩阵可以用:直接输入法、利用函数建立矩阵和利 用M文件建立矩阵。
一. MATLAB特点:
一. MATLAB特点:
1. 数值计算和符号计算功能
MATLAB的数值计算功能包括:矩阵运算、多项式和有 理分式运算、数据统计分析、数值积分、优化处理等。符 号计算将得到问题的解析解。
2.MATLAB语言
MATLAB除了命令行的交互式操作以外,还可以程序方式 工作。使用MATLAB可以很容易地实现C或FORTRAN语言的 几乎全部功能,包括Windows图形用户界面的设计。
基本部分中有数百个内部函数。
其工具箱分为两大类:功能性工具箱和学科性工具箱。 功能性工具箱主要用来扩充其符号计算功能、可视建模仿真 功能及文字处理功能等。学科性工具箱专业性比较强,如控 制系统工具箱、信号处理工具箱、神经网络工具箱、最优化 工具箱、金融工具箱等,用户可以直接利用这些工具箱进行 相关领域的科学研究。

Matlab入门-M语言PPT课件

Matlab入门-M语言PPT课件
case 5 disp(‘the input is 5')
otherwise disp('something else')
end
三、while语句
while (表达式) MATLAB语句
end
while语句实例
例: 使用while语句求解
i = 1; sum = 0; while ( i <= 1000 )
程序运行结果是:
fac =
Columns 1 through 6
1 2 6 24 120
720
Columns 7 through 10
504
40320 362880
3628800
三、参数传递
(一)参数传递有两种方式:
1、形参与实参间的传递(形实结合) 在MATLAB中,参数具有自己的专有工作空间。函数中的 参数和命令行参数不在一个空间中,它们的唯一联系为函数的 输入输出变量。输入参数在函数中是可读的,但任何改动不会 传递回上一级空间。
2、continue 用于结束本次for 或 while 循环,与break命令不同的是,该
命令只结束本次循环而继续下一次循环 3、input
提示用户从键盘输入数值、字符串和元胞数组,并接受该输入 如: a=input(‘input a number’) %输入一个数值 b=input(‘input a string’,‘s’) %输入一个字符串
可以是字母、数字和下划线的组合; ➢ 建议编写H1行时,尽量采用英语,为以后的关键词检索
方便。
5、函数的特点
✓ 函数文件犹如一个黑箱,从外界只能看到其输入输出,内部的 处理藏而不见;
✓ 函数的输入输出变量的数量无限制,也可以没有输入和输出;

演示-matlab的函数M文件

演示-matlab的函数M文件

编写函数文件的 重要规则
第一行是引导行,必须以 function开头
输入参数一定要用圆括号 括起来;
输出参数如果有多个,需 要用中括号括起来;如果只 有一个,中括号可以省略
函数名以字母开头,保存 函数文件时文件名需要与函 数名相同
调用一个函数文件
可以在命令窗口中调用 函数,也可以在脚本文件 中调用函数; 需要对输入参数赋予具 体的值
MATLAB程序设计
—函数M文件
习长新 荆楚理工学院数理学院
本节提要
通过本节的学习,我们将了解到 函数M文件的功能与用法 函数文件的结构 编写M函数文件
MATLAB中的函数包括三类:核心内置函数,如 sin,exp,log; 系统工具箱中的m文件函数;用户自定义 的m文件函数。
函数M文件的语法结构
小结
列表]=函数名(输入形式参数列表) %注释说明语句段(增加可读性,可选) 程序语句段(函数体部分,必须)
调用函数: [v,s]=fallfree(10)
函数文件示例2
编写一个函数文件,用于对一元二次方程求根
输入参数有 多个的情形
调用指令: [x1,x2]=erci_fangcheng(1,-2,3)
函数文件示例3
输入参数是 数组结构的
变量
调用指令: x=rand(10,1); [m,n,p]=tongji(x)
一个函数M文件包括三部分: 输入参数 输出参数 定义输出参数与输入参数的对应关系
语法 格式
function [输出参数列表]=函数名(输入参数列表) %注释说明语句段(增加可读性,可选) 程序语句段(函数体部分,必须)
function [out1,out2,…]=函数名(in1,in2,…)
函数文件举例

第6章 M文件程序设计基础

第6章 M文件程序设计基础
一、
debug菜单
step 单步执行当前行 step in 深入函数
step out 跳出函数(例test_debug.m)
save & run 保存并运行 或 F5 Go until cursor 直接运行到光标所在的位置 exit debug mode 退出调试
二、breakpoint 断点设置
有两种形式,一种是命令文件(Script-file),另 一种是函数文件(Function-file) 命令文件 函数文件
形式 参数 不需要说明 第一行用function说明 没有输出和返回参数 可以接受和返回参数
数据
应用 运行 形式
变量为全局变量,既为 变量为函数内部变量,也 工作空间变量 可以处理全局变量 是调用一系列命令和 反复调用,可改变参数, 函数的集合,便于修改 可用于扩充函数库
注意:汉字符在内存中占2个字节,英文字符 占1个字节;而在字符串数组中,每一个字 符占一个单位空间,不管它是汉字符还是 英文字符。
字符型转换函数
用字符串函数建立字符串数组
s=char(t1,t2,t3,…) s=str2mat(t1,t2,t3,…) s=strvcat(t1,t2,t3,…)
第6章
M文件程序设计基础
第1节 M文件
MATLAB有两种工作模式:一种是在命令中 直接输入简单的命令,适于处理计算量不大的 问题;另一种是M文件的编程工作方式,可以 进行大量的重复性的计算和输入。
MATLAB 的 命 令 文 件 (script) 和 函 数 文 件 (function),是一个简单的ASCII 码标准文本 文件,扩展名为“.m”。
【例6-1】 建立命令文件,绘制花瓣图。
theta = -pi:0.01:pi; rho(1,:) = 2*sin(5*theta).^2; rho(2,:) = cos(10*theta).^3; rho(3,:) = sin(theta).^2; rho(4,:) = 5*cos(3.5*theta).^3; for k =1:4 % 循环控制 polar(theta ,rho(k,:)) % 绘制极坐标图 pause; %暂停 end

MATLAB8.5教程第7章 M文件

MATLAB8.5教程第7章 M文件

格式: inline (EXPR)
%把字符串表达式转化为输入 变量自动生成的内联函数 inline((EXPR, ARG1, ARG2, ...) %把字符串表达式转 化为ARG1, ARG2等 %指定输入变量的内联函数 inline(EXPR, N) %把字符串表达式转化为N个指定输 入变量的内联函数 %输入字符必须是x,P1,P2...PN等字符
7.3.2 局部变量
• 函数不使用工作区Workspace,对于每个函数,系统都会分配一块存储
区域用于存储其产生的变量,这块区域称为函数工作区,其保存的变
量是由函数临时产生的变量,我们称之为局部变量,它只有本函数使 用,且在函数工作区有效。当函数退出时,局部变量就会消失。
• 函数M文件中的所有变量除特殊声明外都是局部变量。
• 【例7-1】建立一个文件名为average1的脚本文件,要 求计算向量元素的平均值,并求出数1到100之和。 • (1)首先建立脚本文件并以文件名average1.m 保存。 • x=input('输入向量:x='); • [m,n]=size(x); • if ~((m==1)|(n==1))|((m==1)&(n==1)) %判断输入是否 为向量 • error('必须输入向量。') • end • E=sum(x)/length(x) %计算向量x所有元素的平 均值E
7.2.3 匿名函数
匿名函数提供了一种创建简单程序的方法,使用它用 户可以不必每次都编写M文件。它可以在命令窗口、或其它
M文件中使用。 格式:FUNHANDLE = @(ARGLIST)EXPRESSION 说明:FUNHANDLE是为该函数创建的函数句柄,@符号 用于创建函数句柄;ARGLIST 是一些由逗号分隔的输入参 数,这些参数将被传输到函数;EXPRESSION,它由执行语 句组成。

matlabM文件PPT课件

matlabM文件PPT课件
以文件名存入
然后在MATLAB命令窗口调用该函数:
[s,p]=fcircle(10)
MATLAB
系统文件——s函数
用于描述系统运动的专用函数,是特殊的 m 文件。 完整函数调用的命令格式:
s 函数有3类: 由simulink结构图自动创建 可用c语言程序设计mex文件直 接定义
用函数m文件编写
MATLAB
注意问题:
+ 1. 函数m文件第一行必须以单词function作为引 导词,表示该M文件是一个函数文件,必须遵循 如下形式: function [输出参数]=函数名(输入参数)
+ 2. 函数名的命名规则与变量名相同,m文件的文 件名必须是<函数名> .m。
+ 3.函数执行后,只保留最后的返回结果,不保留 任何中间过程。程序中的变量均为局部变量, 不保存在工作空间中,其变量只在函数运行期 间有效,随函数调用的结束而从工作空间消除。
文件的分类
M文件有两类:命令文件(脚本文件)和函数 文件。它们的扩展名均为.m。
①命令文件:将用户在MATLAB环境下直接输入的多条语 句或者命令,存 放为 .m 后缀的文件,在命令行键入文 件名,来替代在命令窗口输入多条语句,一次执行成批 命令。
②函数文件:它是有特定书写规范的M文件。如果M文件 第一行包含function, 则此文件为函数文件。每个函数 文件都定义一个函数。用来扩充Matlab的应用范围和满 足用户不同的实际需求。
MATLAB
2)函数帮助信息行 函数信息行:给出函数的帮助信息,帮助信息
要从%开头,并放在一行的开头,用help+函数名 可查询到;
3)函数体----是函数的功能实现部分 4)注释

04Matlab4(M文件)

04Matlab4(M文件)
>> help stat 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.
② 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的M文件编写及简单电力系统的仿真

MATLAB的M文件编写及简单电力系统的仿真

MATLAB大型作业1、编写matlab函数命令M文件,完成下列功能:(1)函数输入参数为正整数n,要求3<n<10,如果输入的参数不符合3<n<10,则给出提示;(2)生成n阶矩阵A;(3)生成n阶矩阵B,B的每个元素是对应位置上A矩阵元素的自然对数;(4)求矩阵B的所有对角线元素之和m;(5)返回值为矩阵B和m;(6)要求:进行上机编程,调试完成后将程序书写在大作业报告中、并加以注释,将调试结果抓图打印粘贴在大作业报告中。

解:1、M文件的编写:2、调试结果:2、一个50Hz的简单电力系统如下图所示,试在Simulink中建立仿真模型研究该系统性能。

k1系统建模要求如下:(1)发电机G采用“Synchronous Machine pu Fundamental”模型,变压器T采用“Three-Phase Transformer (Two Windings)”模型,输电线路L采用“Three-Phase Series RLC Branch”模型,负荷LD1、LD2采用“Three-Phase Parelell RLC Load”模型。

(2)发电机模型参数:采用预设模型,其中学号末位数字为1的同学使用编号为01的模型参数,学号末位数字为2的同学使用编号为02的模型参数,……,学号末位数字为0的同学使用编号为10的模型参数。

(3)变压器模型采用默认参数,副边电压10kV,但需要注意与发电机模型相匹配参数的设置(原边电压、频率等),变压器容量设置为发电机额定功率的1.2倍;(4)线路参数的设置原则:忽略电容,X/R=3,线路通过发电机额定功率时首末端压降约为0.05p.u.;(5)负荷模型采用默认参数,但需要注意与整个系统模型相匹配参数的设置(电压、频率等),负荷LD1容量设置为发电机额定功率的5%,LD2容量为发电机额定功率的30%,功率因数0.95。

(6)其他模块(如短路模拟、测量、示波、powergui等)的使用根据研究要求自行确定。

matlab课件-M函数文件

matlab课件-M函数文件

matlab课件-M函数⽂件第 6 章 M ⽂件和函数句柄MATLAB 程序可以由较多的MATLAB 指令和多种多样的MATLAB 表达式组成,并循着⼀定的执⾏次序运⾏。

这种程序的扩展名为m ,这就是脚本M ⽂件或函数M ⽂件。

本章系统介绍编写MATLAB 程序时最常⽤到的四种控制结构、M 函数⽂件的构造、主函数、⼦函数以及匿名函数。

最后⼀节专门叙述函数句柄的创建、观察和调⽤。

6.1 MATLAB 控制流作为⼀种计算机编程语⾔,MATLAB 提供了多种⽤于程序流控制的描述关键词(Keyword )。

本节只介绍其中最常⽤的条件控制(if, switch )和循环控制(for, while, continue, break )。

MATLAB 的这些指令与其它语⾔相应指令的⽤法⼗分相似,因此本节只结合MATLAB 给定的描述关键词,对这四种指令进⾏简要的说明。

6.1.1if-else-end 条件控制if-else-end 指令为程序流提供了⼀种分⽀控制,它最常见的使⽤⽅式见表6.1-1。

【例6.1-1】已知函数xx x e xxy x ≤<≤--=+-111113,编写能对任意⼀组输⼊x 值求相应y 值的程序。

(1)function y=exm060101(x)% y=exm060101(x) Function calculate of example 6.1-1n=length(x); for k=1:n if x(k)<-1 y(k)=x(k); elseif x(k)>=1y(k)=exp(1-x(k)); elsey(k)=x(k)^3;endend(2)⽤exm060101命名M程序并存放在当前⽬录下x=[-2,-1.2,-0.4,0.8,1,6]y=exm060101(x)x =-2.0000 -1.2000 -0.4000 0.8000 1.0000 6.0000y =-2.0000 -1.2000 -0.0640 0.5120 1.0000 0.00676.1.2switch-case控制结构【例6.1-2】已知学⽣的名字和百分制分数。

MATLAB编程基础第10讲--数据类型、控制语句、M文件

MATLAB编程基础第10讲--数据类型、控制语句、M文件

4
1. 串转换函数




例5-3 字符串转换 a='You are welcome! ' a1=double(a)
a1 = 89 111 117 32 109 101 33 32

97 114 101
32 119 101 108
99 111



a2=char(a1)
a2 = You are welcome!
13
例 5-9



%stats_1.m %purpose: to calculate mean and the standard deviation of %an input data set containing an arbitrary number of input values. %Define variable n --The number of input samples %std_dev --The standard deviation of the input samples %sum_x --The sum of the input values %sum_1x --The sum of the squares of the input values %x --An input data value %xbar --The average of the input samples %Initialize sums. n=0;sum_x=0;sum_x1=0; x=input('Enter first value:'); while x>=0 n=n+1; sum_x=sum_x+x; sum_x1=sum_x1+x^2; x=input('Enter next value:'); end %calculate the mean and standard deviation x_bar=sum_x/n; std_dev=sqrt((n*sum_x1-sum_x^2)/(n*(n-1))); fprintf('The mean of this data set is :%f\n',x_bar); fprintf('The standard deviation is :%f\n',std_dev); fprintf('The number of data points is :%f\n',n); 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[m,n]=size(x); if m==1
y=sum(x)/n; else
y=sum(x)/m; %把每一列做平均值运算 end
主程序文件调用y=mean(x)的方法
clear; A=[1,2;3,4] B=mean(A)
help mean 则在命令窗显示mean函数注释的帮 助信息
函数文件例2:比较两个数大小
局部变量和全局变量
使用global关键字创建全局变量时有三种情况
(1)若声明为全局的变量在当前空间和全局空间都 不存在,则创建一个新的变量,然后为这个变量 赋值为空数组,该变量同时存在于局部工作空间 和全局工作空间
(2)若声明为全局的变量已经存在与全局空间中, 则不会在全局工作空间创建新的变量,其数值同 时赋值给局部工作空间中的变量
输入输出参数(续)
运行例4-15 >> A=[1 2 3;4 5 6] A=
123 456 >> [a,s,r]=ourstats(A) a= 2.5000 3.5000 s= 1.5000 1.5000 r= 2 >> [a,s]=ourstats(A) a= 2.5000 3.5000 s= 1.5000 1.5000
局部变量的例子
运行局部变量的例子
function local
>> local
% LOCAL察看局部变量的例子 函数中的变量
x=rand(2,2);
Name Size Bytes Class
y=zeros(2,2);
u 1x3
256 cell array
z='函数中的变量';
x 2x2
32 double array
4.5000 1.5000
4.5000 1.5000
>> a=ourstats(A,0.1) a=
2.5000 3.5000
4.5000
调用该函数时,将输出参数 依次写在一个向量中,
若输出参数的个数与函数定 义的输出参数个数不一致时, 将计算得到的前几个输出参数 作为返回值,
若输出参数的个数等于指定 的输出参数个数时,计算结果 依次赋值给不同的变量。
保留变量的特征
(1)变量仅能在声明变量的函数内使用,其他 函数不能直接使用保留变量
(2)函数执行退出后,MATLAB不清除保留变量 占用的内存
(3)当函数被清除或者重新编辑后,保留的变 量被清除
保留变量实例
function y=persistent_example(x) % PERSISTENT_EXAMPLE 保留变量使用示例 for i=1:x
序修正的唯一手段 M文件是一种解释型语言,只有在运行过程中才能发现
应用程序的错误
M文件调试
M语言文件编辑器提供Breakpoints菜单进行程序调试
M文件调试
Breakpoints菜单中的命令用来设置各种断点,只有
设置了断点的应用程序才能进行调试 提供的自动断点
Stop if Error Stop if Warning Stop if NaN or Inf Stop if All Errors
子函数:相当于C语言中函数的递归调用
在函数文件中可以包含多个函数,其中第一个函数称为主函数,
其函数名与文件名相同,在M函数文件中的其他函数称为子函数,
它只能由这一函数文件中的主函数或其他子函数引用
子函数应用例1 function[avg,med]=newstats(u) % NEWSTATS计算均值和中间值 n=length(u); avg=mean(u,n); med=median(u,n); function a=mean(v,n) % 计算平均值 a=sum(v)/n; function m=median(v,n) % 计算中间值 w=sort(v); %从小到大排序 if rem(n,2)==1
自动断点可以在程序中设置,当程序运行过程中发生了错误
或警告,则程序运行中断,进如调试状态
function nummax(a,b) if(a<=0|b<=0) disp('input error'); elseif a>b fprintf('the large number is %f',a); elseif a<b fprintf('the large number is %f',b); else fprintf('%f=%f',a,b); end
且为其定义函数名、输入参数和输出参数 function y=mean(x)
(2)帮助信息:处在文件中的第二行,应该反 映该m文件概括性信息
%求平均值
函数文件例1:求均值
function y=mean(x) %求平均值 (3)函数体:函数所用计算过程和输入输出参数赋值的
MATLAB代码; 这里可以为调用函数、流程控制、交互式输入输出、计算、 赋值等。
主程序文件主要由注释行和代码行组成:
M文件的注释行需要使用%,定义符注释定义符 仅能影响一行代码
程序执行的结果将显示于命令窗中
函数文件(相当于C语言的子函数)
函数文件供主程序文件调用,必须指定函数名和
输入输出参数,并由主程序文件中语句序列给出 一系列操作,从而生成所需数据
函数文件格式一般包括以下部分: (1)函数定义行:表明该m文件包含一个函数,
(2)M文件模式
将MATLAB语句构成的程序存储成以m为扩展名的 文件,然后再执行该程序文件,这种工作模式 称为程序文件模式。
M语言文件可以分为主程序文件和函数文件
一个M语言文件就是由若干MATLAB的命令组合在一
起构成的。
M语言文件是标准的纯文本格式的文件,其文件扩
展名为.m。 MATLAB提供了meditor编辑器编辑M文件 注意:
MATLAB将全局变量保存在特殊的工作空间进行统
一维护、管理
将变量声明为全局变量的方法
在使用变量前,用关键字global声明
例:声明全局变量XY
>> global XY
>> whos
Name Size Bytes Class
XY 0x0
0 double array (global)
Grand total is 0 elements using 0 bytes
(1)不可用汉字命名(若用汉字命名虽然可以打开M文 件,但是编译运行时会出错);
(2)文件名不可与MATLAB内置函数 重名; (3)文件名不可以以数字命名。
主程序文件(脚本文件)
相当于C语言的主函数 主程序文件没有输入参数和输出参数。
执行主程序文件时,文件中的指令或者命令 按照出现在脚本文件中的顺序依次执行。
u={x,y,z};
y 2x2
32 double array
disp(z)
z 1x6
12 char array
whos
Grand total is 31 elements using
332 bytes
>> whos
>>
局部变量和全局变量
全局变量:在函数之外定义的变量
可以为本文件中其他函数所共用
3
M文件调试
M文件的调试
可以在文件编辑器中进行
M语言的文件编辑器不仅仅是一个文件编辑器,还是
一个可视化的调试开发环境
可以在命令行中结合具体的命令进行
M文件调试
应用程序的错误
语法错误
包括词法或者文法的错误
运行时的错误
指程序运行过程中得到的结果不是用户需要的结果
程序的调试是在程序无法得到正确结果时进行程
M文件及程序调试
本章详细讲解利用M语言进行编程的方法 讲述的主要内容:
主程序文件 函数文件 M文件的调试
MATLAB的工作模式
(1)指令驱动模式
即在MATLABM命令行窗口下用户输入单行指令时, MATLAB立即处理这条指令,并显示结果,这就 是MATLAB命令行方式。
缺点:命令行方式程序可读性差,而且不能存 储,当处理复杂问题和大量数据时很不方便。
y=x+3; c=x; d=y;
主程序文件: clear; global c d; c=0; d=0; a=5; b=add3(a); c=c+1 d=d+1
保留变量
这类变量在MATLAB中被声明为persistent 这类变量在函数退出时不被释放,当函数再一次
被调用时,变量保留上次退出时的值
保留变量
>> persistent_example(1) 第1次调用该函数 ans =
1 >> persistent_example(3) 第2次调用该函数 第3次调用该函数 第4次调用该函数 ans =
4
在MATLAB命令行中键入指令: >> clear all 则所有的变量都会被清除 >> persistent_example(3) 第1次调用该函数 第2次调用该函数 第3次调用该函数 ans =
m=w((n+1)/2); else
m=(w(n/2)+w(n/2+1))/2; end
% 主函数
% 调用子函数 % 调用子函数 % 子函数
% 子函数
பைடு நூலகம்部变量和全局变量
局部变量:在M函数内部声明并使用的变量
只在本函数范围内有效
仅能在函数调用执行期间被使用,一旦函数结束运行,则
变量占用的内存空间自动释放,变量的数值也不存在了
函数文件例3:多个输入参数
相关文档
最新文档