第2章 MATLAB 语言程序设计基础

合集下载

matlab使用教程2-2

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知识点整理_第二章MATLAB 语言程序设计基础

中国科学院大学_张敏洪_matlab知识点整理_第二章MATLAB 语言程序设计基础

第二章MATLAB 语言程序设计基础——MATLAB 通用命令-3——MATLAB 的保留常量,运算符号-10——符号变量声明syms var_list var_props-14——符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)-15——冒号表达式v=s1:s2:s3该函数生成一个行向量v,其中s1是起始值,s2是步长(若省略步长为1),s3是最大值-18——子矩阵提取B=A(v1,v2) v1、v2分别表示提取行(列)号构成的向量。

(逗号)-20 ——矩阵翻转-25——数学运算符号及标点符号,乘除法,左除右除,乘方-27——矩阵的逻辑运算-35——矩阵的比较运算>, >=, <, <=, ==,~=, find(), all(), any() -36——解析结果的化简与变换s1=simple(s)collect( ) 合并同类项expand( ) 展开多项式factor( ) 因式分解numden( ) 提取多项式的分子和分母sincos( ) 三角函数的化简-38——变量替换-41——基本数论运算---下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数-42——2.4 MATLAB 语言流程控制-47——nargin,nargout分别表示输入和返回变量的实际个数varargin, varargout输入、输出变量列表(可变输入输出个数)——2.5.2 可变输入输出个数conv( ) 可以计算两个多项式的积-65——2.6 二维图形绘制-68——图形元素属性获取与修改-74——2.6.2 其他二维图形绘制语句-76——2.6.3 隐函数绘制及应用-80——2.7.1 三维曲线绘制-81——2.7.2 三维曲面绘制-83。

第二章 MATLAB基础

第二章 MATLAB基础
27
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”则是一个字符串常量。

第2章 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语言基础_第1节-赵亦欣

第二章_MATLAB语言基础_第1节-赵亦欣
ans的值将在下一条表达式语句执行后被刷新。
第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语言程序设计基础

控制系统仿真_薛定宇第二章_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字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象

第二章 MATLAB语言的使用与程序设计

第二章 MATLAB语言的使用与程序设计

命令历史窗口:显示已执行过的命令。在窗口的某一命令上单击鼠标 右键,会弹出菜单,对所选命令进行操作。


当前路径窗口:提供了当前路径文件的操作
演示
MATLAB的搜索路径
搜索路径是一系列文件路径的组合。当程序和命令执行 时, MATLAB 在搜索路径中查找程序或命令运行所需的函数文 件。 MATLAB 在执行搜索时按照规定的顺序。如:在命令窗口 中输入example,MATLAB将按下面的步骤来处理: 1.检查example是不是一个变量,如果是,则返回变量的值;
本章重点:
MATLAB工作环境掌握 主要文件类型及常用命令
矩阵、变量、表达式、常用函数
MATLAB语言的基本语句结构及程序调试方法
一、MATLAB系统简介
MATLAB的主要组成部分
1.MATLAB语言体系:MATLAB 语言是一种以矩阵运算为基础的高级 语言,具有条件控制、函数调用、数据结构、输入输出及面向对象等 程序语言特征,可以进行程序设计。
6 )对矩阵的特殊操作: rot90(a) 将 a 矩阵旋转 90 度、 fliplr(a) 将 a 矩阵的列反序、 flipud(a) 将 a 矩阵的行反序、diag(a) 将向量 a 构 成对角阵( 元素放在主对角线上 )---a 为向量、triu(a) 提取矩阵的上 三角部分、reshape改变矩阵的阶数,按列的顺序重排。
逻辑运算符: 在MATLAB中,逻辑运算符有3种。 & 逻辑与。当运算双方对应元素都为非零时; 结果为1,否则,结果为0。
| 逻辑或。当运算双方对应元素有一个为非零 时;结果为1,否则,结果为0。
~ 结果为0。 逻辑非。当元素的值为 0 时,结果为 1 ,否则,
例: a=[1 0 3;0 –1 6] , b=[-1 0 0;0 5 0.3] ,计算两矩

MATLAB21

MATLAB21

3. 矩阵元素的删除
删除操作就是简单地将其赋值为空矩阵(用[]表示)。
4. 生成大矩阵
在MATLAB中,可以通过方括号“[]”实现将小矩阵联 接起来生成一个较大的矩阵。
5. 矩阵的翻转
triu(X) 产生X矩阵的上三角矩阵,其余元素补0。 tril(X) 产生X矩阵的下三角矩阵,其余元素补0。 flipud(X) 使矩阵X沿水平轴上下翻转。 fliplr(X) 使矩阵X沿垂直轴左右翻转。 flipdim(X,dim) 使 矩 阵 X 沿 特 定 轴 翻 转 。 dim=1 , 按 行 维 翻 转 ; dim=2,按列维翻转。 rot90(X) 使矩阵X逆时针旋转900
2. 子矩阵块的产生 (1)子矩阵是从对应矩阵中取出一部分元素构 成,用全下标和单下标方式取子矩阵。 如a([1 3],[2 3]) ,a([1 3;2 6]) 等。 (2)利用冒号表达式获得子矩阵 ①A(:,j)表示取A矩阵的第j列全部元素;A(i,:) 表示A矩阵第i行的全部元素;A(i,j)表示取A矩 阵第i行、第j列的元素。 ②A(i:i+m,:)表示取A矩阵第i~i+m行的全部元 素;A(:,k:k+m)表示取A矩阵第k~k+m列的全 部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m 行内,并在第k~k+m列中的所有元素。
例 2-1 计算表达式的值,并将结果赋给变量x, 计算表达式的值,并将结果赋给变量x 然后显示出结果。 然后显示出结果。 MATLAB命令窗口输入命令 命令窗口输入命令: 在MATLAB命令窗口输入命令:
>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) x=(5+cos(47*pi/180))/(1+sqrt(7

第2章_MATLAB的基本操作

第2章_MATLAB的基本操作
浮点数
浮点数包括单精度(4个字节)和双精度(8个字 节),默认为双精度。
single :将其它类型的数据转换成单精度浮点数。 double :将其它类型的数据转换成双精度浮点数。
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
MATLAB数据类型
例:
MATLAB数据类型
细胞变量的定义
可以通过以下两种方式定义一个细胞变量:
用赋值语句直接定义; 由 cell 函数预先分配存储空间,然后对细
胞的每个元素逐个赋值。
MATLAB数据类型
MATLAB数据类型
细胞变量可以嵌套定义
MATLAB数据类型
细胞变量的元素的引用
MATLAB数据类型
str2num:将字符数组转换为
数值数组
abs,double,char按照 ASCII码 转换; num2str,int2str,mat2str,str2num 直接转换。
MATLAB数据类型
字符串的连接
水平连接:strcat 或 中括号中用逗号连接
在中括号中直接水平连 接,结果中包括原字符 串结尾处的空格。 用 strcat 连接,结果 中忽略原字符串结尾处 的空格。
把数字直接转换为字符 串,每个数字为一个独 立的字符串。
把数字取整后转换为字 符串,注意和 num2str 的区别。
把矩阵转换为一个字符 串,方括号、分号和空 格都是其元素。
MATLAB数据类型

《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案

《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案
polar(t,r);axis('square')
【17】
(1)z=xy
>>[x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
z=x.*y;
mesh(x,y,z);
>> contour3(x,y,z,50);
(1)z=sin(xy)
>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
【2】
相应的MATLAB命令:B=A(2:2:end,:)
>>A=magic(8)
A=
642361606757
955541213 515016
174746 202143 4224
4026273736 303133
323435 292838 3925
4123224445191848
491514 5253 11 10 56
【10】
function y=fib(k)
if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endﻭif nargout>1,error('出错:输出变量个数过多!');end
if k<=0,error('出错:输入序列应为正整数!');endﻭifk==1|k==2,y=1;ﻭelsey=fib(k-1)+fib(k-2);endﻭend
858 5954 62 631
>>B=A(2:2:end,:)
B =
955 541213515016
40262737 36303133
41232244451918 48
858 5954 62631

第2章 MATLAB语言程序设计实例解析

第2章 MATLAB语言程序设计实例解析

【例2-6】switch语句实例 (原题见书本【例2-40】)。
• • • • • • • • • • • • • • • • • 解:首先我们要提取出开关表达式,这里若直接选用price作为开关表达式,则表达式i 则不好表示,因为price的取值理论上是无穷的,考虑到将price化为整数,这样图2-9中 的表达式i也就不难表示了。下面给出具体的程序: price=input('请输入商品价格:'); switch fix(price) case num2cell(0:199) % 价格小于200 rate=0; case num2cell(200:499) % 价格大于等于200但小于500 rate=3/100; case num2cell(500:999) % 价格大于等于500但小于1000 rate=5/100; case num2cell(1000:2499) % 价格大于等于1000但小于2500 rate=8/100; case num2cell(2500:4999) % 价格大于等于2500但小于5000 rate=10/100; otherwise % 价格大于等于5000 运行结果: rate=14/100; 请输入商品价格:1225 end sale_price =1127 sale_price=price*(1-rate) % 输出商品实际销售价格
【例2-1】隐函数的求导。
• 对于隐函数求偏导问题时,diff()函数并不能直接用于求解。考虑到隐 函数偏导数求解的一般方法:假设隐函数的数学表达式为
f ( x1 , x2 ,L , xn ) = 0
• 则可以通过隐函数求出自变量之间的偏导数。具体可以用下面的公式
∂xi • 求出 : ∂x j
∂ f ( x1 , x2 ,L , xn ) ∂x ∂xi =− j ∂ ∂x j f ( x1 , x2 ,L , xn ) ∂xi

第二章 matlab基础知识

第二章 matlab基础知识
第四种方法:利用函数logspace logspace是用来创建对数空间的向量

logspace 的基本语法
X=logspace(X1,X2,n) 该函数创建的向量第一个元素值为10X1,而最后一个元素的数值为10X2,

n为向量的元素个数,元素彼此之间的间隔按照对数空间的间隔设置 若在表达式中忽略参数n,则系统默认地将向量设置为50个元素
2.4 Matlab数据
2016/12/29 数据类型 矩阵的概念 一维数组变量的创建 二维数组变量的创建 数组元素的标识与寻访 字符串 多维矩阵 元胞 Application of Matlab Language 结构
8
2.4.1. MATLAB数据类型
数据的记述 Matlab的数只采用习惯的十进制表示,可 以带小数点和负号;其缺省的数据类型为双 精度浮点型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6 其他数据类型 此外,MATLAB还提供了各种有符号、无 符号整型数据,具体参见教材表2.2。
语言。可见学习掌握这一工具的重要性。
2016/12/29
Application of Matlab Language
3
2.2 MATLAB的主要功能
功能强大
数值运算优势 符号运算优势(Maple) 强大的2D、3D数据可视化功能 许多具有算法自适应能力的功能函数
2016/12/29
10
2.4.2. 数组(array)的概念
数组的分类
一维数组,也称为向量(vector) 。
行向量(row vector)、列向量(column vector)。
二维数组(矩阵matrix)。 多维数组。 有效矩阵:每行元素的个数必须相同,每 列元素的个数也必须相同。

MATLAB

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

02第二章Matlab语言基础-Matlab教程

02第二章Matlab语言基础-Matlab教程

MATLA于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩 阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列 例m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2222 3 3 3 3] 特殊矩阵的建立: a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) 产生一个m行、n列的零矩阵 c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵 d=eye(m,n) 产生一个m行、n列的元素的单位矩阵 e=randn(m,n) 产生一个m行、n列正态分布随机矩阵
3、数组的方向 前面例子中的数组都是一行数列,是行方向分布的 称之为行向量 数组也可以是列向 行向量. 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量 数组也可以是列向 量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示. 它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示 产生列向量有两种方法: 产生列向量有两种方法: 直接产生 例 转置产生 例 c=[1;2;3;4] ; ; ; b=[1 2 3 4]; c=b’
Matlab语言基础 Matlab语言基础
1)启动与退出
双击matlab图标,进入matlab命令窗口(command window) 双击matlab图标,进入matlab命令窗口(command window),即可 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。

第二章_MATLAB_语言基础(绘图)

第二章_MATLAB_语言基础(绘图)

三、图形标识、坐标控制

MATLAB会自动设定所画曲线的颜色和线型 plot一个附加参量,就可以指定所需要的颜色 和线型 线型的控制‘s’ 绘制坐标系的调整 分格线和坐标框 图形的标注 lengend



三、图形标识、坐标控制 ——线型的控制‘s’

1、颜色控制符
字 符 b c g
颜 色 蓝色 青色 绿色
字 符 m r w y
颜 色 紫红色 红色 白色 黄色
k
黑色
三、图形标识、坐标控制 ——线型的控制‘s’

2、线 型 符 号 线 型 - 实线(默认) -· 点划线 符 号 : -- 线 型 点连线 虚线
三、图形标识、坐标控制 ——线型的控制‘s’
3、数据点标记字符
控制符 · + o * × 标 记 点 十字符 圆圈 星号 叉号 控制符 h p ˇ ˆ > 标 记 六角形 五角形 下三角 上三角 右三角




>> x=0:pi/90:2*pi; >> y1=sin(2*x); >> plot(x,y1) % 默认方式创建1号窗口。 >> figure(2) >> y2=exp(-1.5*x).*sin(2*x); >> plot(x,y2,':') % 创建2号窗口。 >> figure(1) >> grid >> xlabel('x'),ylabel('y1') >> figure(2) >> grid >> xlabel('x'),ylabel('y2')
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

子矩阵提取
• 基本语句格式 B=A(v1,v2) v1、 v2分别表示提取行(列)号构成的向量。 例:>> A=[1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0] A= 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 >> B1=A(1:2:end,:) %提取全部奇数行、所有列。 B1 = 1 2 3 4 5 6 7 8
第二章 MATLAB 语言程序设计基础
MATLAB 语言是当前国际上自动控制领域的首选 计算机语言,也是很多理工科专业最适合的计算机数学 语言。通过学习可更深入理解和掌握数学问题的求解思 想,提高求解数学问题的能力,为今后其他专业课程的 学习提供帮助。
• • • • •
MATLAB 语言的简洁高效性 MATLAB 语言的科学运算功能 MATLAB 语言的绘图功能 MATLAB 庞大的工具箱与模块集 MATLAB 强大的动态系统仿真功能
本章主要内容
• • • • • • MATLAB 程序设计语言基础 基本数学运算 MATLAB语言流程控制 MATLAB 函数的编写 二维图形绘制 三维图形绘制
2.1 MATLAB 程序设计语言基础
• MATLAB 语言的变量命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写;
• 矩阵除法
– 矩阵左除:AX = B,求 X – MATLAB 求解:X=A\B
• 若A为非奇异方阵,则 X=A-1B • 最小二乘解(若A不是方阵)
– 矩阵右除:XA = B,求 X – MATLAB求解:X=B/A
• 若A为非奇异方阵,则 X=BA-1 • 最小二乘解(若A不是方阵)
• 矩阵翻转
(3)变量名最多不超过19个字符;
(4)变量名必须以字母打头,之后可以是
任意字母、数字或下划线,变量名中
不允许使用标点符号
MATLAB 的保留常量
特殊变量 ans pi eps flops inf NaN i,j nargin nargout realmin realmax 取 值 用于结果的缺省变量名 圆周率 计算机的最小数,当和 1 相加就产生一个比 1 大的数 浮点运算数 无穷大,如 1/0 不定量,如 0/0 i=j= 1 所用函数的输入变量数目 所用函数的输出变量数目 最小可用正实数 最大可用正实数
解析结果的化简与变换
MATLAB 实现:
s1=simple(s) 从各种方法中自动选择最简格式 [s1,how]=simple(s) 化简并返回实际采用的化简方法 其中,s为原始表达式,s1为化简后表达式,how为 采用的化简方法。
• 其他常用化简函数(信息与格式可用 help命令得 出)
collect( ) expand( ) factor( ) numden( ) sincos( ) 合并同类项 展开多项式 因式分解 提取多项式的分子和分母 三角函数的化简
0.8000
2.6000
>> v2=0:-0.1:pi %步距为负,不能生成向量,得 出空矩阵 v2 = Empty matrix: 1-by-0 >> v3=0:pi v3 = 0 1 2 3 >> v4=pi:-1:0 %逆序排列构成新向量 v4 = 3.1416 2.1416 1.1416 0.1416 >> v5=[0:0.4:pi,pi] v5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416
基本数论运算
下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模 的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数
例:对下面的数据进行取整运算 -0.2765,0.5772,1.4597,2.1091,1.191,-1.6187 >> A=[-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187]; >> floor(A) % 向 -inf 方向取整 ans = -1 0 1 2 1 -2 >> ceil(A) % 向 +inf 方向取整 ans = 0 1 2 3 2 -1 >> round(A) %取最近的整数 ans = 0 1 1 2 1 -2 >> fix(A) %向 0 的方向取整 ans = 0 0 1 2 1 -1
MATLAB支持的其他数据结构
• 字符串型数据:用单引号括起来 。 • 多维数组:是矩阵的直接扩展,多个下标。 • 单元数组:将不同类型数据集成到一个变 量名下面,用{}表示;例:用A{i,j}可表示 单元数组A的第i行,第j列的内容。 • 类与对象:允许用户自己编写包含各种复 杂详细的变量,可以定义传递函数。
例: >> syms s; >> P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) ; P= (s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) >> simple(P) % 一系列化简尝试,得出计算机认为的 最简形式 ans = (s+3)^2*(s+2)*(s+1)*(s+4)^3
• 函数调用语句
[返回变量列表]=函数名(输入变量列表)
例:[a,b,c]=my_fun(d,e,f,c) • 冒号表达式 v=s1:s2:s3 该函数生成一个行向量v,其中s1是起始值, s2是步 长(若省略步长为1), s3是最大值。
例:用不同的步距生成 (0,p) 间向量。 >> v1=0:0.2:pi v1 = Columns 1 through 9 0 0.2000 0.4000 0.6000 1.0000 1.2000 1.4000 1.6.8000 2.0000 2.2000 2.4000 2.8000 3.0000
– – – – 左右翻转 bij ai ,m1 j 上下翻转 cij an1i , j 旋转 90o (逆时针) 如何旋转180o? B=fliplr(A) C=flipud(A) D=rot90(A)
>> D=rot180(A) ??? Undefined function or variable 'rot180'. >> D=rot90(rot90(A))
符号型变量数据类型
• 符号型,sym(A), 常用于公式推导、解析解解法
– 符号变量声明 • syms var_list var_props • 例:syms a b real • syms c positive – 符号型数值可采用变精度函数求值 • vpa(A), 或 vap(A,n) >> vpa(pi) ans = 3.1415926535897932384626433832795 >> vpa(pi,60) ans = 3.14159265358979323846264338327950288419716939937 510582097494
数学运算符号及标点符号
+ — * .* / ./ ^ .^ \ 加法运算,适用于两个数或两个同阶矩阵相加. 减法运算 乘法运算 点乘运算 除法运算 点除运算 乘幂运算 点乘幂运算 反斜杠表示左除.
(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “...”表示续行.
矩阵的逻辑运算
• 逻辑变量:
– 当前版本有逻辑变量 – 对 double 变量来说,非 0 表示逻辑 1
• 逻辑运算(相应元素间的运算)
– – – – 与运算 A&C 或运算 A|C 非运算 ~A 异或运算 xor(A,C)
矩阵的比较运算
• 各种允许的比较关系 >, >=, <, <=, ==,~=, find(), all(), any() • 例:>> A A= 1 2 3 4 5 6 7 8 0 >> find(A>=5), %大于或等于5元素的下标 ans = 3 5 6 8
>> [a,m]=simple(P) % 返回化简方法为因式分解方 法,用 factor( ) 函数将得同样结果 a= (s+3)^2*(s+2)*(s+1)*(s+4)^3 m= factor
>> expand(P) ans = s^7+21*s^6+185*s^5+883*s^4+2454*s^3+3944*s^2+33 60*s+1152
数值型数据结构
• 双精度数值变量 – IEEE标准,64位 (占8字节),11指数位,53 数值位和一个符号位 – – double( ) 函数的转换 • 其他数据类型 – uint8,无符号8位整形数据类型,值域为0至 255,常用于图像表示和处理。(节省存储 空间,提高处理速度) – int8( ), int16( ), int32( ),uint16( ), uint32( )
2.2 基本数学运算
矩阵的代数运算
• 矩阵表示
• 矩阵转置
– 数学表示 (若A有复数元素,先转置再取各元素共轭复数 值,Hermit转置)
• MATLAB 求解 B=A.’
C=A’
• 矩阵加减法 C=A+B
D=A-B
– 注意维数是否相等 – 注意其一为标量的情形
• 矩阵乘法
– 数学表示
– MATLAB 表示 C=A*B – 注意相容性
矩阵乘方 – A 为方阵,求 – MATLAB 实现: F=A^x
相关文档
最新文档