Matlab仿真技术

乔世坤

目录

  • 1 实验一Matlab基础与入门
    • 1.1 Matlab简介
    • 1.2 变量与数值
    • 1.3 矩阵运算
    • 1.4 数组运算
    • 1.5 常用数学函数
    • 1.6 Matlab帮助系统
    • 1.7 实验内容
    • 1.8 思考题
  • 2 实验二 Matlab程序设计基础
    • 2.1 M文件
    • 2.2 Matlab程序流控制
    • 2.3 实验内容
    • 2.4 思考题
  • 3 实验三Matlab图形绘制
    • 3.1 二维曲线的绘制
    • 3.2 三维曲线的绘制
    • 3.3 实验内容
    • 3.4 思考题
  • 4 MATLAB数值计算与符号运算
    • 4.1 线性代数中的应用
    • 4.2 多项式运算
    • 4.3 数据分析与统计
    • 4.4 功能函数
    • 4.5 常微分方程的数值求值
    • 4.6 符号运算
    • 4.7 Matlab数值计算部分实验题
    • 4.8 Matlab符号运算部分实验题
    • 4.9 Matlab程序设计部分实验题
    • 4.10 思考题
  • 5 Simulink仿真基础
    • 5.1 Simulink概述
    • 5.2 Simulink建模与仿真
    • 5.3 子系统及其封装技术
    • 5.4 SIMULINK模块库简介
    • 5.5 Simulink仿真基础实验题
    • 5.6 Simulink仿真应用实验题
    • 5.7 思考题
  • 6 Matlab在电路分析中的应用
    • 6.1 Matlab在电路中的仿真应用
    • 6.2 数字逻辑电路仿真
    • 6.3 实验内容
    • 6.4 思考题
  • 7 MATLAB在信号与系统中的应用
    • 7.1 连续时间信号及其表示
    • 7.2 线性时不变系统
    • 7.3 线性时不变系统的时域分析
    • 7.4 线性时不变系统的频域分析
    • 7.5 实验内容
    • 7.6 思考题
  • 8 Matlab在数字信号处理中的应用
    • 8.1 信号的表示与信号的基本运算
    • 8.2 实验内容
    • 8.3 思考题
  • 9 MATLAB在通信原理中的应用
    • 9.1 脉冲编码调制仿真
    • 9.2 实验内容
M文件
  • 1 文档
  • 2 视频
  • 3 PPT
  • 4 小测试



2.1 M文件

此前所讲述的命令都是在命令窗口中直接进行的,是交互式工作形式,操作简单,结果明确,但只适用于一些较简单的计算。为了充分发挥Matlab的功能,同其他程序设计语言一样,Matlab提供了文件编辑器,可以进行程序设计。Matlab的程序代码文件称M文件,以.m为扩展名,是ASCII文件,有函数(Function)和脚本(Scripts)两种格式。

2.1.1脚本文件

Matlab的脚本文件我们可以理解为,把要在命令窗口执行的一系列Matlab命令语句,集中放在一个程序文件内,称为脚本文件,执行时,只需输入脚本文件名,Matlab就会自动执行脚本文件中的命令语句。脚本文件有如下特点:

1. 脚本文件中命令语句的执行等同于在命令窗口中执行;

2. 脚本文件中命令语句所涉及的变量存储在工作空间(Workspace)中,在工作空间窗口中可以访问、调用、编辑、删除这些变量。

3. 脚本文件可以访问工作空间(Workspace)中数据变量。

[2-1]编写脚本文件,求100以内的斐波那契数列。

%ffibno1.m

%Fibonacci series 斐波那契数列计算,每个元素都等于其前两个元素之和。

clear;close all;

n=100;                        

f=[1,1];                               %定义f为斐波那契数列初始时只有两个值为1的元素

i=1;                                    %定义循环控制变量i

while f(i)+f(i+1)<100           %循环语句计算当前数列最后两个元素和是否<100

  f(i+2)=f(i)+f(i+1);            %判断结果为真时产生新的数列元素补充到f数列后面

  i=i+1;

end;

disp(f)                                %显示输出100以内的斐波那契数列

编辑完成保存到文件ffibno1.m中。主程序前通常是程序注释,说明程序功能,每行%开始,可以为中文或英文。程序文件主体由函数、命令组成,通常用“clear;close all”开始。流程控制语句采用缩进格式。程序文件中除注释外必须用半角英文字母和符号,文件名不允许用中文。执行时,只需在提示符后输入文件名即可,例如:

>> ffibno1

     1     1    2     3     5    8    13    21   34    55    89

查看工作空间内的变量,存在fin三个变量

2-1工作空间窗口


2.1.2函数文件

函数文件可以完成相互调用等复杂功能。Matlab提供的标准函数大部分都是由函数文件定义的。函数的基本结构如下:

function [输出参数列表]=函数名(输入参数列表)

%H1行及帮助文本,说明函数功能及使用方法

函数体及注释

函数以function作为关键词开头一行是引导行,函数文件的命名规则与变量名相同。紧随函数引导行之后是以%开始的第一注释行称H1行,通常对函数功能进行简要描述,供lookfor关键词和help在线帮助使用。如果函数中有return语句,遇到该语句则结束函数返回,如没有return语句,则函数执行完后自动返回。

函数文件的特点主要有:

1. 它接收输入参数,返回输出参数,进行变量传递;

2. 除用global声明,函数只能访问函数本身的工作空间中变量,无论Matlab命令窗口还是其它函数都不能对该函数工作空间中变量进行访问,当函数执行完毕后,变量被清除,空间被释放,即函数工作空间是独立的、临时的。

3. 函数文件的名称必须和该文件中定义的函数名相同。

[2-2] 编写函数,求斐波那契数列。

function f=ffibno2(n)                                                                          %函数定义行

% Fibonacci series 斐波那契数列计算每个元素都等于前两个元素之和。%H1

% f(1)=1f(2)=1,输入n计算小于nffibno数列                    %帮助文本

f=[1,1];i=1;                                                                                        %以下为函数体

while f(i)+f(i+1)<n;

    f(i+2)=f(i)+f(i+1);

    i=i+1;

end;

其中,function f=ffibno2(n)为函数定义行,f是输出变量,n为输入变量。帮助文本一般说明函数功能及使用说明,函数文件保存时,系统自动提示给出函数名做文件名保存。本例必须以文件名ffibno2.m保存。如下实现函数调用。

>> clear

>> a=100;

>> y=ffibno2(a)

y =

     1     1    2     3     5    8    13    21   34    55    89

调用时,“a=100;”定义变量a,值等于100;语句“y=ffibno2(a)”实现了对ffibno2函数的调用,变量a的值100传递给了函数的输入参数n,经函数运算得到f值,函数将输出变量f的值传递给工作空间的变量y,函数运行结束,此时观察工作空间只有ay两个变量。


2-2函数调用后的工作空间

对于函数的调用者而言,函数的内部的局部变量fin是不可视的。函数内部变量只在函数内部存在,即是局部变量,函数调用结果后,释放函数的工作空间,fin就不存在了。执行如下语句,结果没有变化。

>> a=100;n=10;

>> y=ffibno2(a)

y =

     1     1     2    3     5     8   13    21    34   55    89

也就是说,完全可以定义与函数内部变量名称完全相同的变量,两者没有任何关系。工作空间定义的n对函数的运行没有任何影响。

2.1.3 M文件编辑器

M文件的编辑可以应用Matlab文本编辑器进行,从“主页”的菜单条中选择“新建”,在其下拉菜单条中选择“脚本”或“函数”,即可打开编辑器窗口,进行新建脚本文件或函数文件的编辑。在菜单中选择“打开”,则可打开已存在的脚本文件或函数文件。

                                 图2-3新建函数文件的编辑窗口

    当脚本文件编辑完成后要执行时,可以直接点击图2-3菜单条中的“运行”按钮或在命令窗口提示符“>>”后输入脚本文件名。函数文件一般不能直接点击“运行”来执行。

M文件编辑器进行编辑时,注意应用以下两点编辑方法,提高效率。

1. 编辑文件时,选择某些命令语句后单击鼠标右键,在弹出菜单中选择“注释”,将在所选内容前加上“%”成为注释,相对应,选中有注释的命令语句,单击鼠标右键菜单中的“取消注释”,则删除命令语句前面的“%”,恢复为正常语句,这一功能方便程序调试。

2. 在历史命令窗口中,可以选择某些命令语句复制拷贝到M文件中。方法是单击要选中内容的开始行命令语句,再按shift同时单击结束行语句,就选中了内容,单击鼠标右键,在弹出的菜单中选择处理方式。