Matlab
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

王国利 PowerPoint PPT Presentation


  • 62 Views
  • Uploaded on
  • Presentation posted in: General

Matlab 计算与仿真技术 第五讲 : 交互式计算 -III. 王国利. http://human-robot.sysu.edu.cn. 信息科学与技术学院. 中山大学. 第五讲提纲. 上機實習提示 交互式计算 -III. 上机实习提示. 上机实习提示 - 时间 / 地点安排 单周二: 12-13 节 实验中心 B 座 401 - 基本要求 准时出席 / 遵守实验室规定 完成实习指南要求的任务 认真做好实习报告或总结. 交互式计算 ( 续 ). 矩阵计算进阶

Download Presentation

王国利

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6136252

Matlab计算与仿真技术

第五讲: 交互式计算-III

王国利

http://human-robot.sysu.edu.cn

信息科学与技术学院

中山大学


6136252

第五讲提纲

  • 上機實習提示

  • 交互式计算-III


6136252

上机实习提示

  • 上机实习提示

    - 时间/地点安排

    单周二:12-13节

    实验中心B座401

    - 基本要求

    准时出席/遵守实验室规定

    完成实习指南要求的任务

    认真做好实习报告或总结


6136252

交互式计算 (续)

  • 矩阵计算进阶

    - 算术运算

    加减运算: 相同阶数或一个为标量

    提示: A+b 等价于[aij+b]

    乘法运算: 相容阶数或一个为标量

    提示: A*b 等价于[aij*b]

    除法运算: 相容阶数且除矩阵非奇异或非零标量

    提示: A/b 等价于[aij/b]

    注意: 左右除的分别, 即

    A/B 不等价于B/A


6136252

交互式计算 (续)

- 非算术运算

关系运算: = = > <

结果:返回布尔值矩阵

条件: 相同阶数或一个为标量

提示: A==b 等价于[aij==b]

逻辑运算: &/|/~/xor

以逻辑和为例, 相同维数或至少一个为标量

>> C=A & B;

% cij=1 iff both aij andbij nonzeros

cij=0 otherwise


6136252

交互式计算 (续)

- 矩阵函数

数学函数: 函数名通常以m为结尾标志

提示: 矩阵函数 和 函数矩阵的差异

例如, expm(X)≠exp(X)

logm(X)≠log(X)

逻辑函数

相同维数或至少一个为标量

AND/OR/XOR

提示:与逻辑运算一致


6136252

交互式计算 (续)

- 矩阵整形操作

维数查询

>> size(A);

功能: 返回行列值

举例:

>> A=[1:4; 5:8; 9:12]’;

>> [m,n]=size(A)

m =

4

n =

3

提示: 通常与其他整形操作协作使用


6136252

交互式计算 (续)

- 矩阵整形操作

向量长度查询

>> length(b);

功能: 返回元素个数

等价于

>> max(size(b))

元素个数查询

>> numel(A);

功能: 返回元素个数

等价于

>> prod(size(A));

>> prod([m,n]); % == m*n;


6136252

交互式计算 (续)

- 矩阵整形操作

标量确认查询

>> isscalar(b);

功能: 返回逻辑值

向量确认查询

>> isvector(b);

功能: 返回逻辑值

空矩阵确认查询

>> isempty(A);

功能: 返回逻辑值

查询非零元素: >> find(A); % 返回非零元素


6136252

交互式计算 (续)

- 矩阵整形操作

重排操作 reshape

基本格式:

>> reshape(A,m,n);

功能: 按列重排

举例:

>> A=[1:4; 5:8; 9:12]’;

>> B=reshape(A,2,6)

B =

1 3 5 7 9 11

2 4 6 8 10 12

提示:对二维信号处理特别有用


6136252

交互式计算 (续)

- 矩阵整形操作

翻转操作 fliplr(水平翻转)/flipud(上下翻转)/rot90(绕转)

基本格式:

>> fliplr(A);

>> flipud(A);

>> rot90(A);

功能: 按水平/上下翻转重排, 或逆时针旋转90度

举例: >> rot90(A)

>> A=[1:3; 4:6]; ans =

>> fliplr(A) >> flipud(A) 3 6

ans = ans = 2 5

3 2 1 4 5 6 1 4

6 4 5 1 2 3


6136252

交互式计算 (续)

- 矩阵整形操作

拼接操作

>> cat(dim,A1,A2,…);

>> blkdiag(A1,A2,…);

功能: 按行或列拼接矩阵, 或按对角块方式组织

特别地

>> cat(1,A,B); % == [A;B]

>> cat(2,A,B); % == [A,B]

举例: >> cat(2,A’,B’)

>> A=[1:4]; B=[5:8]; ans=

>> cat(1,A,B) 1 5

ans = 2 6

1 2 3 4 3 7

5 6 7 8 4 8


6136252

交互式计算 (续)

- 矩阵整形操作

块提取操作: diag(对角元素)/tril(下三角)/triu(上三角)

基本格式:

>> diag(A); % 返回对角向量

>> tril(A); % 上三角元素清零

>> triu(A); % 下三角元素清零

功能:提取对角块/下三角/上三角块

举例: >> triu(A)

>> A=[1:3; 4:6]; ans =

>> diag(A) >> tril(A) 1 2 3

ans = ans = 0 5 6

1 1 0 0

5 4 5 0


6136252

交互式计算 (续)

  • 数据类型使用注解

    - 更多的常用数据类型

    复数

    字符串

    多项式

    数组

    结构

    胞组

    对象


6136252

交互式计算 (续)

  • 关于复数

    - 虚数单位

    内置变量: i/j(=sqrt(-1))

    >> i^2

    ans =

    -1

    提示: 应尽量避免利用其自定义变量

    - 内置函数

    >> abs % 幅值 >> exp % 指数

    >> angle % 复角 >> imag % 实部

    >> conj % 共扼 >> real % 虚部


6136252

交互式计算 (续)

- 使用实例

>> zeta=5; theta=pi/3; % 幅值和复角

>> z=zeta*exp(i*theta)

z =

2.5000+4.3301i

>> abs(z) >> real(z)

ans = ans =

5.0000 2.5000

>> angle(z)*108/pi >> imag(z)

ans = ans =

60.0000 4.3301


6136252

交互式计算 (续)

  • 关于字符串

    - 基本概念

    元素为字符的矩阵

    单引号方式赋值

    引用方式同矩阵

    - 使用实例

    >> first=‘john’; >> length(name)

    >> last=‘coltrane’; ans =

    >> name=[first,’ ’,last] 13

    name =

    john coltrane


6136252

交互式计算 (续)

- 常用操作函数

转换操作

>>char 操作

功能:将整数转换成对应的ASCII码字符

另:可将两个字符串拼接

>>num2str 操作

功能:将数值矩阵转换成字符串文本

>> str2num操作

功能:将字符串文本转换成数值矩阵


6136252

交互式计算 (续)

查询操作

>> findstr

功能:查找感兴趣的子字符串

对比操作

>> strcmp

功能:比较两个字符串,返回逻辑值

>> strncmp

功能:只比较字符串的前n个字符


6136252

交互式计算 (续)

>> strmatch

功能:依行进行前端匹配查询

返回前端匹配的行下标

拼接操作

>> strcat

功能:行方式拼接字符串

>> strvcat

功能:列方式拼接字符串


6136252

交互式计算 (续)

使用实例

>> msg1=[‘there are’, num2str(100/2.45),…

‘inch in meter’]

msg1 =

there are 39.3701 inch in meter

>> msg2=sprintf(‘there are %5.2f cubic …

inches in a liter’, …

1000/2.54^3)

msg2 =

there are 61.02 inches in a liter


6136252

交互式计算 (续)

>> both=strvcat(msg1,msg2)

both =

there are 39.3701 inch in meter

there are 61.02 inches in a liter

>> strcmp(msg1,msg2)

ans =

0

>> strncmp(msg1,msg2,9)

ans =

1


6136252

交互式计算 (续)

>> findstr(‘in’,msg1)

aus =

19 26

>> i=strmatch(‘max’,strvcat(‘max’,…

'minimax','maximum'))

ans =

1

3

>> char([77, 65, 84, 76, 65, 66])

ans =

MATLAB


6136252

交互式计算 (续)

  • 关于多项式

    - 基本概念

    数学表达式

    求值计算

    >> c=[c1,c2,c3,…,cn,cn+1];

    >> polyval(c,x)


6136252

交互式计算 (续)

卷积计算

>> w=conv(u,v) % 返回多项式系数向量

重构操作

>> c=poly(v) % 返回多项式系数向量

微分操作

>> cdef=polyder(c)

拟合操作

>> c=polyfit(x,y,n)


6136252

交互式计算 (续)

使用实例

>> c = [3 2 1];

>> polyval(c,[5 7 9])

ans =

85 162 262

>> x = (0: 0.1: 2.5)'; y = erf(x);

>> c = polyfit(x,y,6)

c =

0.0084 -0.0983 0.4217 -0.7435

0.1471 1.1064 0.0004


6136252

交互式计算 (续)

>> d=conv(c,[5 7 9])

ans =

15 31 46 25 9

>> dd=polyder(d)

dd =

60 93 92 25

>> poly(roots(dd))

ans =

1.0000 1.5500 1.5333

0.4167


6136252

结束语

第六讲预告:Matlab编程

(2008年4月2日)


  • Login