MATLAB程序设计M文件建立
实验三_M_文件及_MATLAB_程序设计与调试
实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。
二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。
(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。
有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。
MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。
(2)函数文件——它的第一行必须是函数定义行。
M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。
但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。
例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。
matlab编程2
第二节 程序控制结构
选择结构
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句. 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 语句的几点注解:
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 程序设计 M文件建立
2) 有两个选择的一般形式是: if (expression1) {commands1} else {commands2} end
x2 1 x 1 例 设f ( x) , 求f (2), f (1) 2x x 1
function f=fun1(x) if x>1 f=x^2+1 else f=2*x end
2. While循环
与for循环以固定次数求一组命令相反,while循环以
不定的次数求一组语句的值.
while (expression) {commands} end
只要在表达式(expression)里的所有元素为真, 就执行while和end语句之间的命令串{commands}.
例: 设银行年利率为11.25%.将10000元钱存入银行, 问多长时间会连本带利翻一番? money=10000; years=0; while money<20000 years=years+1; money=money*(1+11.25/100); end years money
M文件建立方法:
1. 在MATLAB中,点:File→New → M-file
2. 在编辑窗口中输入程序内容
3. 点File → Save,存盘,M文件名必须与函数名一致.
例:定义函数 f(x1, x2)=100(x2-x12)2+(1-x1)2 1.建立M文件:fun.m function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2 2. 可以直接使用函数fun.m
ห้องสมุดไป่ตู้
x2 1 x 1 例 设f ( x) , 求f (2), f (1) x 1 2x
matlab教程m文件介绍
一、matlab的工作模式
指令驱动模式
通常matlab以指令驱动模式工作,即在 matlab 窗口下当用户输入单行指令时,matlab 立即处理这条指令,并显示结果,这就是 matlab命令行方式。 命令行操作时,matlab窗口只允许一次执行 一行上的一个或几个语句。
命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。
m文件模式
将matlab语句构成的程序存储成以m为扩展名 的文件,然后再执行该程序文件,这种工作 模式称为程序文件模式。 程序文件不能在指令窗口下建立,因为指令 窗口只允许一次执行一行上的一个或几个语 句。
二、m文件的创建
?echo指令用来控制m文件在执行过程中是否显示echoon打开所有命令文件的显示方式echooff关闭所有命令文件的显示方式echo在以上两者间切换?input提示用户从键盘输入数值字符串表达式
matlab的程序设计
—— matlab语言编程, 程序简洁、可读性很强 而且调试十分容易。
m文件简介
(3). 分支结构——根据一定条件来执行的各条语 句。 if — else — end语句有3种形式 1 if 表达式 执行语句 end 2 if 表达式 ——— 是 语句1 else ———— 否 语句2 end
3 if
表达式1 ——— 多分支 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 · · · else 语句n end
(3). 函数m文件— 需要输入变量,返回输出变量
matlab函数及脚本文件入门讲解
>> b=3
例例
fprintf ('there are %f ',b )
>> there are 3.000000
创建一个字符矩阵并存入磁盘, 再读出赋值给另一个矩阵。 >> a='string'; >> fid=fopen('d:\char1.txt','w'); >> fprintf(fid,'%s',a); >> fclose(fid); >> fid1=fopen('d:\char1.txt','rt'); >> b=fscanf(fid1,'%s')
删除rmpath(' folder path') set path (add folder)
4. 显示M文件内容
调用格式: type M文件
在命令窗口显示
>> edit
>> type aaaa.m qq=22; bb=444; dd=qq+bb;
>> which aaaa aaaa not found. >> cd C:\Users\Desktop\matlab >> addpath(‘C:\Users\Desktop\matlab’) >> edit aaaa >>type aaaa
3. 脚本文件特点
① 一串命令行简单叠加的集合; ② 自动按顺序执行文件的命令; ③ 无输入和输出量; [v,d]=eig(a) ④ 所有变量都驻留在基本工作空间中; ⑤ 所有变量均为全局变量。
matlab编程简明教程
>> isfinite(5) >> isinf(5)
14
运算优先级
括号 幂,点幂 正号,负号,逻辑非 乘,除,点乘,点除 加,减 冒号运算 关系运算
& | && ||
高
低
15
本讲主要内容
M 文件 Matlab 编程基础
算术运算、关系运算、逻辑运算 控制结构:
顺序结构:数据输入输出(input、disp、fprintf 等) 选择结构:if 语句、switch 语句 循环结构:for 循环、while 循环
\n ( 换行 ) \t ( 制表符 ) \b ( 退格 ) \\ ( 反斜杆 ) %% ( 百分号 )
20
fprintf
例: >> a='Hello';
>> b=2.4; >> c=100*pi; >> fprintf('a=%s, b=%f, c=%e\n',a,b,c)
format 中的格式字符串要与输出变量一一对应
1
0
1
1
0
1
0
0
在 Matlab 中,0 表示 “假”,非零表示 “真”
12
逻辑运算
逻辑运算函数:all、any
any(x)
如果向量 X 中存在非零元素,则返回 1, 否则返回 0
all(x)
如果向量 X 中所有元素都非零,则返回 1, 否则返回 0
若 x 为矩阵,则 any 和 all 按列运算, 返回一个 0-1 向量
y=a+1; elseif n==1
y=a*(1+n); elseif n==2
MATLAB程序设计实验指导书
MATLAB程序设计实验指导书MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能满足所有的计算需求。
在美国及其他发达国家的理工科院校里,MATLAB已经作为一门必修的课程;在科研院所、大型公司或企业的工程计算部门,MATLAB也是最普遍的计算工具之一。
有鉴于此,我院开设了《MATLAB程序设计》这门课程,它需要一定的理论基础,同时又具有很强的实践性。
如何加强理论课程的学习、加深学生对本课程中的基本理论知识及基本方法的理解,如何培养学生实践动手能力是教学的当务之急。
而MATLAB程序设计实验课程就是一种重要的教学手段和途径。
实验将MATLAB程序设计的基本方法灵活地运用在数学、电路等课程中,重点突出,内容丰富。
同时,注重理论分析与实际动手相结合,以理论指导实践,以实践验证基本原理,旨在提高学生分析问题、解决问题的能力及动手能力,使学生进一步巩固基本理论知识,建立比较全面的MATLAB程序设计的概念。
实验注意事项1、实验系统接通电源前请确保电源插座接地良好。
2、完成实验后请确保关闭电脑电源及插座电源。
实验一 矩阵及其运算一、实验目的1、熟悉MATLAB 工作环境2、掌握矩阵和数组的创建、寻访和运算 二、实验内容验证欧姆定律:iur ,其中i u r , ,分别是电阻(欧姆)、电压(伏特)、电流(安培)。
已知u=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41],i=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345]。
三、实验器材PC 机 (装有 MA TLAB 软件 ) 1台 四、实验原理 4.1 Desktop 简介MATLAB R2006a 版的Desktop 操作桌面,是一个高度集成的MATLAB 工作界面。
第二讲 M文件及函数的编写
case{2,4,6}
disp(‘even numbers’)
otherwise
disp (‘ mistake!’)
end2021/5/27
14
M文件及函数的编写
分支语句和C语言的区别:
当开关表达式的值等于某表达式,执行该语句 后结束该结构,不用 break otherwise 语句,不是 default 程序的执行结果和各个case顺序无关
3. 交互式输入Байду номын сангаас
(1) 用户输入提示命令input
M文件及函数的编写
input 命令用来接收用户从键盘输入数据、 字符串或表达式,并接收输入值。其常用格 式: >> R=input (‘How many apples’)
运行此命今后,将给出文字提示,并等待键盘 输入。
>> R=input(‘what is your name ?’,’s’)
新建M文件 一般过程 编写指令
调试运行
M文件及函数的编写
用户在编制此类文件时,只需把所要执行的命令 按行编辑到指定的文件中,程序运行时, MATLAB按行执行这些指令。
2021/5/27
4
几点规则:
M文件及函数的编写
● 建立好的书写风格,保持程序的可读性。
● m为文件的扩展名,在低版本的MATLAB中 还要注意文件名不超过8位,文件名和变量的命 名规则相同。
2.在command window中调用:num=my_fact(11)
M20A21T/5/2L7 AB函数为:prod(1:1000)
24
使用tic和toc函数, 测试一下该函数的运行效率。 显式程序运行的时间。
tic; num=my_fact(500); toc
《MATLAB程序设计》实验指导书
三、
实验仪器和设备
1、 计算机一台。 2、 MATLAB7.0 以上集成环境。
四、
预习要求
2
《MATLAB 程序设计》实验指导书
1、 复习 MATLAB 的启动与Байду номын сангаас出,熟悉 MATLAB 运行环境。 2、 复习 MATLAB 中矩阵的生成以及矩阵运算的基本原理。
五、
实验内容及步骤
实验内容:
1、 求下列表达式的值 1) z1
5
《MATLAB 程序设计》实验指导书
2) 函数调用 函数文件编制好后,就可调用函数进行计算了。函数调用的一般格式为 [输出实参表]=函数名(输入实参表) 注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个 数一致,否则会出错。函数调用时,实参先传递给形参,然后再执行函数功能。 5、 选择结构 1) if 语句 a) 单分支 if 语句 if 条件 语句块 end b) 双分支 if 语句 if 条件 语句块 1 else 语句块 2 end c) 多分支 if 语句 if 条件 1 语句块 1 elseif 条件 2 语句块 2 …… elseif 条件 n 语句块 n else 语句块 n+1 end 2) switch 语句 switch 表达式 case 结果表 1 语句块 1 case 结果表 2 语句块 2 ……
二、
实验原理
1、 M 文件 用 MATLAB 语言编写的程序,称为 M 文件,它们的扩展名均为.m。M 文件根据 调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file) 。 2、 建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: 1) 单击工具栏上的“New M-File”命令按钮。 2) 从 MATLAB 主窗口的“File”菜单中选择“New”菜单项,再选择“M-file”命令。 3) 在 MATLAB 命令窗口输入命令“edit”。 3、 打开已有的 M 文件 1) 在当前目录窗口选中要打开的 M 文件,双击鼠标左键。 2) 单击 MATLAB 主窗口工具栏上的“Open File”命令按钮,再从弹出的对话框中 选择所需打开的 M 文件。 3) 从 MATLAB 主窗口的“File”菜单中选择“Open”命令,在“Open”对话框中选中 所需打开的文件。 4) 在 MATLAB 命令窗口输入命令“edit 文件名” 。 4、 函数文件 1) 函数文件的基本结构 函数文件由 function 语句引导,其基本结构为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。
第3章MATLAB程序设计3.1 M文件3.2 程序控制结构3.3 函数文...
例3-3 求一元二次方程ax2 +bx+c=0 的根。
程序如下: 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))]);
2.数据的输出
MATLAB提供的命令窗口输出函 数主要有disp函数,其调用格式为 disp(输出项) 其中输出项既可以为字符串,也可 以为矩阵。
例3-2 输入x,y的值,并将它们的 值互换后输出。
程序如下: x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y);
程序如下: 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 %显示出错原因
3.2.3 循环结构
1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式 2的值为步长,表达式3的值为循环变量的 终值。步长为1时,表达式2之间第一个能 被21整除的整数。
程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
4.循环的嵌套: 如果一个循环结构的循环体又包括一
第4章MATLAB程序设计
例 求一个值n,使n!最大但小于1050。 MATLAB程序如下: %初始化 r=1;k=1; 执行后结果如下: %做循环 The 41!Is while r<1e50 3.345253e+049 r=r*k; k=k+1; end k=k-1;r=r/k;k=k-1; % 输出结果 disp(['The',num2str(k),'!is',num2str(r)])
4.2.3 循环结构 for 循环:可完成指定次重复的循环,且在循环开 始之前,就知道代码重复的次数。
while 循环:while语句可完成不定次重复的循 环,与for语句不同,每次循环前要先判断条件 是否满足,再决定循环是否进行。
例 利用rand函数产生10个随机数,然后利用嵌套 for循环进行从小到大排序。
2 1.5 1 0.5 0 150 100 50
然后通过调用函数fun计算出z, 并利用mesh绘制出网格线。 编写的脚本文件如下: % 坐标系准备 x=[0:.02:2]; y=[-2:.02:0]; % 调用函数计算函数值 z=fun(x,y); % 绘图 figure mesh(z)
150 100 50
4.3.2 函数的调用 函数调用的一般格式如下: [输出实参表] = 函数名(输入实参表) 要注意的是,函数调用时各实参出现的顺 序、个数,应与函数定义时形参的顺序、 个数一致,否则会出错。函数调用时,先 将实参传递给相应的形参,从而实现参数 传递,然后再执行函数的功能。
例 对于函数
z ( x 1)2 ( y 1)2
fprintf函数中,format字符中常常会使用到一些特 殊字符来灵活的实现一些显示功能 format string 结果 %d %e %f %g 把值作为整数来处理 用科学记数法来显示数据 用于格式化浮点数,并显示这个 数 用科学记数格式,或浮点数格式, 根据那个表示的数位短,显示那 个 转到新的一行
matlab M文件的建立与调试
三、m文件的分类
可以存取的M文件— 称命令文件(程序文件、脚本文件)
可调用M文件 — 称函数(function)文件
1、程序文件 以.m格式进行存取,包含一连串的MATLAB指令和 必要的注解。与在命令窗口逐行执行文件中的所有指 令,其结果是一样的。没有输入输出参数。 程序运行时只需在命令窗口中键入其名称即可
第二章
2.1 变量与赋值 2.2矩阵的初等运算 2.3元素群运算
基本语法
2.4逻辑判断及流程控制 2.5基本绘图方法 2.6M文件及程序调试
2.6 M文件及程序调试
一、M文件简介
• 用户如想灵活应用matlab去解决实际问题,充分 调用matlab的科学技术资源,就需要编辑m文件 • 包含matlab语言代码的文件称为m文件,其扩展名 为m。
• keyboard —
当keyboard在m文件中出现时,它停止 文件的执行并控制键盘,用于修改程序。
a=input('a=');
pause(2) b=input('b=');
A='press any key to continue..'; disp(A) pause c=input('c='); keyboard d=b*b-4*a*c; disp(A) pause x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
主要特征: (1)、用clear,close all等语句开始,清除工作空间原有的 变量与图形,以避免其它已执行的程序残留数据对本程序 的影响。 (2)、前几行通常是对此程序的说明。这些注释行必须以 % 开始,以便计算机执行时不予理会。(注释部分) (3)、程序的主体 如果程序中有全局变量,即在主程序与主程序中共有 的变量,应在程序中的起始部分注明。语句为: global 变量名 (4)、整个程序按Matlab 标示符的要求其文件名,并加 上.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
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文件)
② 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
>> disp (b)
第2章 MATLAB编程基础
例4.3 求一元二次方程ax2 +bx+c=0的根。
程序如下:
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)]
第2章 MATLAB编程基础
作业
作业上交格式:所有程序放在一个文件夹下, 文件夹压缩后命名格式:班级+学号+姓名(如:12 电气X1+120514503+孙大贺)发送到
21420322@
第2章 MATLAB编程基础
1、用MATLAB语言实现下面的分段函数:
ቤተ መጻሕፍቲ ባይዱ 第2章 MATLAB编程基础
第2章 MATLAB编程基础
例4.11 矩阵乘法运算要求两矩阵的维数相容,否则会 出错。先求两矩阵的乘积,若出错,则自动转去求 两矩阵的点乘。 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 %显示出错原因
(3)命令按钮操作:单击MATLAB命令窗口工具栏上的
“新建”命令按钮。 2. 编辑已有的M文件
第2章 MATLAB编程基础
例4.1 建立一个命令文件将变量a,b的值互换,然后运行 该命令文件。 首先建立命令文件并以文件名exch.m存盘: clear all; a=1:10; b=[11,12,13,14;15,16,17,18]; c=a;a=b;b=c; a b 然后在MATLAB的命令窗口中输入exch,将会执行该 命令文件。 >>exch
《Matlab程序设计》课程教学大纲
Matlab程序设计Matlab Program Design一、课程基本情况课程类别:专业任选课课程学分:2学分课程总学时:32学时,其中讲课:24学时,实验(含上机):8学时课程性质:选修开课学期:第4学期先修课程:计算机基础,高等数学,线形代数适用专业:电子科学与技术教材:MATLAB程序设计教程,中国水利水电出版社,刘卫国,2010,第2版开课单位:电子与信息工程学院电子科学与技术系二、课程性质、教学目标和任务MATLAB程序设计是电子与电气信息类相关专业的专业任选课程之一。
MATLAB是由MathWorks 公司1985 年推出的一种面向科学与工程的计算软件,它具有极强的数值计算、图形文字处理、数据分析、动态仿真、信号处理等功能,涉及了数值分析、自动控制、信号处理、图像处理等十几个领域的计算和图形显示,功能强大。
因此,将MATLAB引入教学,强化应用能力培养,学生在学习专业基础课程时,增加工程应用背景,在打好专业基础的同时,提高学生的应用、创新意识。
通过本课程的学习,使学生学习和掌握如何利用MATLAB对所学理论、原理和方法进行计算机仿真,通过仿真,加深对所学知识的理解和掌握,解决学习相关课程中遇到的抽象问题,为后续专业课程的学习奠定基础。
通过工程软件在电气类专业基础课程的应用,提高学生动手能力、分析问题与解决问题的能力,到达对学生的工程意识培养的目的。
三、教学内容和要求第1章MATLAB系统环境(2学时)(1 )了解MATLAB的影响及其开展历史和MATLAB 7.0的主要功能;(2)理解MATLAB 7.0的运行环境与安装过程,熟悉菜单栏、工具栏的使用;( 3)掌握命令窗口、历史记录窗口、当前目录窗口的使用方法;重点:命令窗口、历史记录窗口、当前目录窗口的使用方法;难点:MATLAB 7.0的辅助局部和MATLAB的数学函数库。
第2章MATLAB数据及其运算(2学时)(1 )了解元胞数组、结构与结构数组;( 2)理解一、二维数组的创立方法;( 3)掌握数值表示、变量表达式、矩阵的表示、字符串矩阵的算术运算、数组运算;重点:矩阵线性运算;创立数组、数组的算术运算;难点:数组运算。
实验三 M 文件及 MATLAB 程序设计与调试
实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。
二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。
(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。
有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。
MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。
(2)函数文件——它的第一行必须是函数定义行。
M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。
但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。
例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量。
当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如:计算 f(1,2), 只需在MATLAB命令窗口键入命令: x=[1 2] fun(x)
控制流
MATLAB提供三种决策或控制流结构: for循环、while循环、if-else-end结构.
这些结构经常包含大量的MATLAB命令,故经常出现 在MATLAB程序(M文件)中,而不是直接加在MATLAB 提示符下.
1. for循环:
for x=1:n {commands}
end
例
对n=1,2,…,10,求xn=
sin
n
10
的值.
for n=1:10 x(n)=sin(n*pi/10);
end x
输出: x= 0.3090 0.9511
0.5878 0.8090
0.8090 0.5878
0.9511 0.3090
M文件建立方法:
1. 在MATLAB中,点:File→New → M-file 2. 在编辑窗口中输入程序内容 3. 点File → Save,存盘,M文件名必须与函数名一致.
例:定义函数 f(x1, x2)=100(x2-x12)2+(1-x1)2 1.建立M文件:fun.m function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2
例: 设银行年利率为11.25%.将10000元钱存入银行, 问多长时间会连本带利翻一番?
money=10000; years=0; while money<20000
years=years+1; money=money*(1+11.25/100); end years money
运行结果:
years =7 money = 2.1091e+004
MATLAB入门
程序设计
M文件
MATLAB的内部函数是有限的,有时为了研究 某一个函数的各种性态,需要为MATLAB定义新函 数,为此必须编写函数文件. 函数文件是文件名后 缀为M的文件,这类文件的第一行必须是一特殊字 符function开始,格式为:
function 因变量名=函数名(自变量名) 函数值的获得必须通过具体的运算实现,并赋 给因变量.
3. if-else-end结构
(1)有一个选择的一般形式是: if (expression) {commands} end
如果表达式(expression)里的所有元素为真, 就执行if和end语句之间的命令串{commands}. 否则,就跳出该结构。
例
设f
(x)
x2
1
x 1 ,
x
3
x0
1、先建立函数M文件fun2.m来定义函数f(x) function f=fun2(x) if x>1
f=x^2+1 else if x<=0
f=x^3 else
f=2*x end end
2、再在MATLAB命令窗口输入fun2(2),fun2(0.5), fun2(-1)即可.
例
设f
(
x)
x2
1
x 1 ,
求f (2), f (1)
2x x 1
function f=fun1(x)
if x>1
f=x^2+1
else
f=2*x
end
3) 有三个或更多的选择的一般形式是: if (expression1) {commands1}
else if (expression2) {commands2}
else if (expression3) {commands3}
else if …… ………………………………… else {commands} end end end ……
end
x2 1 x 1
例 设 f (x) 2x 0 x 1, 求f (2), f (0.5), f (1)
1.0000 0.0000
2. While循环
与for循环以固定次数求一组命令相反,while循环以 不定的次数求一组语句的值.
while (expre式(expression)里的所有元素为真, 就执行while和end语句之间的命令串{commands}.
求f (2), f (1)
2x x 1
1、编写函数M文件 function f=fun1(x) if x>1
f=x^2+1 end if x<=1
f=2*x end
2、在MATLAB命令窗口输入fun1(2),fun1(-1)即可.
2) 有两个选择的一般形式是: if (expression1) {commands1} else {commands2} end