第二章MATLAB语言基础
matlab使用教程2-2

第2章 Matlab语言程序设计 章 语言程序设计
写二进制文件: 用fwrite写二进制文件: 写二进制文件 COUNT=fwrite(Fid, A, precision) 例: Fid=fopen(‘test.dat’, ‘w’); cnt=fwrite(Fid, A, ‘float’) fclose(Fid); 读取ASCII数据文件: 数据文件: 用fscanf读取 读取 数据文件 [A, COUNT]=fscanf(Fid, format, size) format用以控制读取的数据格式,由%加上格式符组成, 用以控制读取的数据格式, 加上格式符组成, 用以控制读取的数据格式 常见的格式符有: 常见的格式符有:d, i, o,u, x, e, f, s, c。 。 例:fscanf(Fid, ‘%s’); fscant(Fid, ‘%6.2f’); fscanf(Fid, “%5d’);
第2章 Matlab语言程序设计 章 语言程序设计
d) 其它与流程控制有关的语句
if
if
break语句循环结构 语句循环结构 语句
continue 语句循环结构 语句循环结构
第2章 Matlab语言程序设计 章 语言程序设计
pause 指令使程序运行停止,等待用户按任意键继续; 指令使程序运行停止 等待用户按任意键继续; 使程序运行停止, input 指令提示用户从键盘输入数值、字符串或表达 指令提示用户从键盘输入数值 提示用户从键盘输入数值、 并接受输入; 式,并接受输入; disp指令在屏幕上显示字符串; 指令在屏幕上显示字符串 指令在屏幕上显示字符串 echo on指令显示其后所有执行文件的指令; 指令显示其后所有执行文件的指令 指令显示其后所有执行文件的指令; echo off指令关闭其后所有执行文件的指令显示。 指令关闭其后所有执行文件的指令显示 指令关闭其后所有执行文件的指令显示。
第二章 MATLAB基础

3 )向量是一个数学量,一般高级语言中也未引入, 它可视为矩阵的特例。从MATLAB的工作区可以查 看到:一个 n 维的行向量是一个 1 × n 阶的矩阵,而 一个n维的列向量则当成n×1阶的矩阵。 如A=[1 2 3 4]就是一个4维的行向量。也可看成是 一个一维数组,还要看成是一个1×4阶的矩阵。
3
数据类型转换函 数 uint8 uint16 uint32 uint64 int8 int16 int32 int64
说 明 无符号8位整数 无符号16位整数 无符号32位整数 无符号64位整数 有符号8位整数 有符号16位整数 有符号32位整数 有符号64位整数
字节数 1 2 4 8 1 2 4 8
22
【例 2.8】变量赋值 >> a=3.14 a= 3.1400 >> class(a) %函数class用来是判断变量数据类 型的 ans = double %变量a是双精度的浮点型数据
23
>> a='hello!' hello! >> class(a) ans = char
%变量a重新赋值
13
>> whos Name Size a 1x1 x 1x1 y 1x1 z 1x1
Bytes Class Attributes 16 double complex 4 int32 4 int32 8 int32 complex
14
2.2MATLAB的常量及变量
2.2.1常量 常量是程序语句中取不变值的那些量。如表达式 y=0.314*x,其中就包含一个0.314这样的数值常数,它 便是一个数值常量。而在另一表达式s='Hello'中,单引 号内的英文字符串“Hello”则是一个字符串常量。
Matlab基础知识点

MATLAB讲义第一章 MATLAB系统概述1.1 MATLAB系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。
特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。
(2)语句书写简单。
(3)语句功能强大。
(4)有丰富的图形功能。
如plot,plot3语句等。
(5)提供了许多面向应用问题求解的工具箱函数。
目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。
(6)易扩充。
1.2 MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。
同时MATLAB又具有面向对象编程特色。
MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。
(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。
(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。
还包括低级的图形命令,供用户自由制作、控制图形特性之用。
(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。
MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。
(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。
1.3 MATLAB的应用范围包括:MATLAB的典型应用包括:●数学计算●算法开发●建模、仿真和演算●数据分析和可视化●科学与工程绘图●应用开发(包括建立图形用户界面)以矩阵为基本对象第二章 Matlab基础2.1 MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。
第2章 MATLAB的基础知识

a=[1 2 1;2 2 1;2 1 2]; b=[1;2;3]; a/b %矩阵右除
运行程序,得到结果:
??? Error using ==> mrdivide Matrix dimensions must agree.
重新输入语句
a\b
%矩阵左除 ans = 1.0000 -0.3333 0.6667
运行程序,得到结果:
c= 0 0 1 1 1 0
说明 对于复数运算,“= =”与“~ =”运算,既比较实部, 又比较虚部。而其他运算仅比较实部。关系运算同样也可用于 常量与矩阵的比较,在这种情况下,该常量与矩阵的每一个元 素进行比较,其结果是一个与矩阵同维数的0、1矩阵。
逻辑操作符
逻辑操作符 说 明 相对应函数
-0.1667 0 0
(3)矩阵特征值运算
矩阵条件数cond( ) 矩阵的秩rank() 矩阵特征值eig ( )
矩阵范数norm( ) 矩阵的迹trace ( ) 矩阵奇异值svd ( )
例2-7 分别计算矩阵a的有关特征参数。输入以下 MATLAB语句
a=[1 2 3;4 5 6;7 8 0] [cond(a),norm(a),rank(a)]
2.MATLAB工作环境
图形窗口“Figure”
M文件窗口
3.MATLAB的M文件
所谓M文件,就是用户把要实现的命令写在一个 以.m为扩展名的文件中
M文件有两种格式(统称为M文件) 函数式M文件 程序式M文件 程序式M文件用于把很多需要在命令窗口输入的命 令放在一起,就是命令的简单叠加 函数式M文件用于把重复的程序段封装成函数供用 户调用。
&
|
逻辑与
逻辑或
and(a,b)
Matlab基础知识点

MATLAB讲义第一章 MATLAB系统概述1.1 MATLAB系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。
特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。
(2)语句书写简单。
(3)语句功能强大。
(4)有丰富的图形功能。
如plot,plot3语句等。
(5)提供了许多面向应用问题求解的工具箱函数。
目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。
(6)易扩充。
1.2 MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。
同时MATLAB又具有面向对象编程特色。
MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。
(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。
(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。
还包括低级的图形命令,供用户自由制作、控制图形特性之用。
(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。
MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。
(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。
1.3 MATLAB的应用范围包括:MATLAB的典型应用包括:●数学计算●算法开发●建模、仿真和演算●数据分析和可视化●科学与工程绘图●应用开发(包括建立图形用户界面)以矩阵为基本对象第二章 Matlab基础2.1 MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。
Matlab工程应用基础_2_2Matlab语言程序设计

1、 Matlab数据类型 变量和常量 数字变量的格式 字符串 单元型变量 结构型变量 矩阵、向量 多项式
a) 变量和常量 变量(包括函数)的命名规则:由英文字母、数字和下划线 混合组成,不得包含空格和标点 ;第一个字符必须是英 文字母,最多包括31个字符; 对字母的大小写敏感。 局部变量和全局变量 永久变量(常量) 只能在某一函数体内使用,而不能从其他函数和 Matlab 工作空间访问的变量,就是局部变量。 在几个函数及M atlab函数中都能使用的变量就是全局变 量。 (全局变量名应尽可能大写,并由globe声明)
第2章 Matlab语言程序设计
关系操作符
逻辑操作符
第2章 Matlab语言程序设计
MATLAB 的关系操作符运算法则: 当两个变量是标量 a 和 b 时 ◆若 a、b 之间关系成立,则关系运算结果为 1; ◆若 a、b 之间关系不成立,则关系运算结果为 0; 当两个维数相同的矩阵 A 和 B 比较时,矩阵 A、B 比 较的是相同位置的元素,按标量的运算规则逐个进行。 关系运算的结果是一个和 A维数相同的矩阵,它的元 素由 0 和 1 组成。 当一个矩阵A 和一个标量 b 比较时,把标量 b 和矩阵 A 的每一个元素按标量关系运算规则逐个比较。关系 运算的结果是一个和数组 A维数相同的矩阵,它是由 0 和 1 组成。 优先级 由高到低为算术运算、关系运算和逻辑运算。
ans = -0.9918 >> y=sin(5*t+6) y= -0.9918
第2章 Matlab语言程序设计
表达式由变量名、运算符、数字和函数名组成。 表达式将按常规的优先纽从左至右执行运算; 优先级的规定是指数运算级别最高,乘除运算次之; 括号可以改变运算顺序; 书写表达式时,赋值符“=”和运算符两侧允许有 空格,以增加可读性。但在复数或符号表达式中要 尽量避免空格,以防出错; 表达式的末尾加 “;” 时,Matlab系统只把数值赋 给变量, 不显示计算结果;不加“;”时, Matlab 系统将会在该条语句的下面直接显示运算结果。
第二章_MATLAB语言基础_第1节-赵亦欣

第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i
控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础

控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数
不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用
匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31
控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量
常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制
可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制
控制系统仿真与CAD 国家级精品课程
符号型数据结构
syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5
vpa(A) 显示符号变量
例2-1 显示e的前300位 其他数据结构
int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A
8
还可以分行输入矩阵元素
>> M=[1 2 3 456 7 8 9]
M= 123 456 789
A
9
➢使用矩阵生成函数:zeros, ones, eye, rand, randn, magic…
例:
✓全零矩阵
✓全ቤተ መጻሕፍቲ ባይዱ矩阵
>> M=zeros(3,3)
>> M=ones(3,4)
M=
M=
000
1111
此外,还有范德蒙矩阵、 希尔伯特矩阵、托普利兹 矩阵、帕斯卡矩阵等。
A
12
➢使用数组编辑器:交互式输入法,比较直观。
从已有向量或矩阵中计算得 到; 从外部文件读入;
➢还有其他办法吗? A
13
(4)向量和矩阵元素的索引
➢一个元素的访问 例:
✓访问向量的一个元素
>> a=[3 6 9 2 8];
>> a(2) %访问第二个元素,单下标
第二章 MATLAB语言基础
主要内容: (1)概述 (2)创建向量 (3)创建矩阵 (4)向量和矩阵元素的索引(重点) (5)向量和矩阵的基本操作 (重点) (6)多维数组
A
1
(1)概述
➢数组:一组有序数的集合,下标是指数组元 素在数组中的序号,每个元素有唯一的下标。
➢向量:
从编程语言的角度上看,向量其实就是一维 数组;
ans = 3 6 8 2 4 1
17
>> M([1 3 5])%访问第1、3 、5 个元素, 单向量下标
ans =
314 >> M([1 2],[2,3])%访问第1、2行的第2,3列,双 向量下标;
ans =
68
45
>> M(1:3,1:2) %访问第1~3行的第1~2列,双向 量下标
ans =
000
1111
000
1111
A
10
✓单位矩阵 >> M=eye(3,3) M=
100 010 001
✓0~1之间均匀分布的随机矩阵
>> rand(3,4) ans =
0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919
36
34
12
A
18
>> M(1,:) %访问第1行的所有列
ans =
368
>> M([1 3;2 4])%矩阵做下标
ans =
31
36
>> M(:)%访问矩阵的所有元素
ans =
3
❖向量可以做向量和矩阵的下标,
ans =
6
>> a(end)%访问最后一个元素,单下标
ans =
8
A
14
✓访问矩阵的一个元素
>> M=[1 3 9;6 4 8;3 6 0] M=
139 648 360
>> M(2,2)%双下标
ans = 4
>> M(6)%单下标
ans = 6
>> M(end)%访问最 后一个元素,单下 标
ans = 0
A
15
➢若干元素的访问(向量或者矩阵做下标)
例:
✓访问向量的若干元素
>> a=[3 6 8 2 4 1]; >> a(1:3)%访问1~3个元素,单向量下标
ans =
368 >> a([1 3 5])%访问第1、3、5个元素,单向量下标
ans =
384 >> a(end-1:end)%访问最后两个元素,单向量下标
从数学的角度上看,向量就是1×N或者 N×1的矩阵,即行向量或列向量;
从物理意义上看,表示不仅有大小还有方向 的量,与标量相对应。
A
2
➢矩阵:即线性代数中定义的矩阵的概念,一 个二维的数据表,每个元素位于不同的行和 列上,从编程语言的角度看,矩阵就是二维数 组。
❖MATLAB中矩阵元素是按列存储的, C语言中是按行存储的。
ans =
41
A
16
>> a([1:3,3:-1:1])%重复访问向量 元素,单向量下标
ans =
368863 >> a([1 3;2 4])%使用矩阵做下标
ans =
38
62 ✓访问矩阵的若干元素
>> M=[3 6 8;3 4 5;1 2 6]
M=
368
345
126
A
>> a(:)%访问 向量所有元素
147
❖增量可以为负数
>> a=10:-2:2 a=
10 8 6 4 2
❖增量缺省时默认为1
>> b=1:6
b=
123456
❖冒号运算符可以与 直接输入法混用
>> a=[2 5 6:8]
a=
A
5
25678
➢使用向量生成函数linspace和logspace :
使用linspace生成线性空间向量,均匀间隔的一 组数;
❖MATLAB中的向量和矩阵都是使用1下标, 而不是C语言中的零下标。
❖MATLAB的基本运算单位就是矩阵和向 量,M语言是向量化编程的语言。
A
3
(2)创建向量
➢直接输入法:
行向量元素之间用空格(不论个数)或者逗号 隔开,列向量元素之间用分号隔开.
例: 创建向量
>> a=[1 3 5 8 9] a=
从已有向量或矩阵中计算得 到;
从外部文件读入;
➢还有其他办法吗?
A
7
(3)创建矩阵
➢直接输入法:一行中元素之间用逗号或者空 格隔开,行与行之间用分号隔开。
例:
>> M=[1 2 3;4 5 6;7 8 9] >> M=[1,2,3;4,5,6;7,8,9]
M=
M=
123
123
456
456
789
789
A
11
✓零均值、方差为1的高斯分布矩阵 >> M=randn(3,3) M=
0.1746 -0.5883 0.1139 -0.1867 2.1832 1.0668 0.7258 -0.1364 0.0593
✓魔方矩阵(每行每列以及对角线上元素之 和相同)
>> magic(4) ans =
16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
13589 >> a=[1,3,5,6,9] a=
13569
A
>> b=[1;5;6;8;9] b=
1 5 6 8 9
❖也可采用对行向量 取转置的方法构造 列向量
4
➢使用冒号运算符:
一般格式为start : increment : end,分别表示初 值、增量和终值。
例:
>> a=1:3:9 a=
使用logspace生成对数空间向量,以10为底.
例:
>> a=linspace(1,10,6) a=
1.0000 2.8000 4.6000
6.4000
8.2000 10.0000
>> b=logspace(1,5,5)%指数之间均匀间隔 b=
10 100 1000 10000 100000
A
6
➢使用数组编辑器:交互式输入法,比较直观。