主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼 424...

53
MATLAB MATLAB http://www2.nbu.edu.cn/jiangzh idi/mediasystem http://bighand.zxq.net/mediasys tem 主主 主主主 主主主主主主主主主主主主主 基基基 基基基基基基 424 基基665929 email [email protected] 主主 主主主主主主 主主 体统 主主 主主主主主主 主主 体统

Upload: molly-delgado

Post on 01-Jan-2016

82 views

Category:

Documents


9 download

DESCRIPTION

多媒体信息处理系统设计. MATLAB 基础 http://www2.nbu.edu.cn/jiangzhidi/mediasystem http://bighand.zxq.net/mediasystem. 主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼 424 电话: 665929 email : [email protected]. 主要内容. Matlab 概述 软件界面简介 变量、数组、矩阵和字符串 程序设计 符号运算. Matlab 概述. MATrix LABoratory - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

MATLABMATLAB 基础基础 http://www2.nbu.edu.cn/jiangzhidi/mediasystem http://bighand.zxq.net/mediasystem

主讲:蒋志迪宁波大学信息科学与工程学院

办公室:曹光彪信息楼 424 电话: 665929 email : [email protected]

多媒体信息处理系统设计多媒体信息处理系统设计

Page 2: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

主要内容• Matlab 概述• 软件界面简介• 变量、数组、矩阵和字符串• 程序设计• 符号运算

Page 3: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

Matlab 概述• MATrix LABoratory

– 由美国 Math Works 公司开发• 适合多学科、功能强大

– 发展自今,已集成科学计算、图像处理、声音处理…… ( 包括微积分、代数、数值分析等 )

– 矩阵计算功能强大、还支持符号运算• 高级课程的基本教学工具

– 直译式语言,比其他程序设计语言容易

Page 4: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

MATLAB 的主要特点

• 运算符和库函数极其丰富,语言简洁,编程效率高

• 图形功能强大• 功能强大的工具箱• 易于扩充

Page 5: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

• MATLAB 是“ 矩阵实验室”( MATrix LABoratory )的缩写,最初版本是由 Cleve Moler 博士用 FORTRAN 语言开发的矩阵分析软件

80 年代初期,由 Cleve Moler 和 John Little 采用 C 语言改写了 MATLAB 的内核。成立了 Mathworks 软件开发公司,并于 1984 年将 MATLAB 正式推向市场。

• 1992 年初推出了应用于 Windows 操作系统的 MATLAB 4.x 版本。• 1997 年推出 5.1 版本。• 1998 年推出 5.2 版本。• 1999 年推出 MATLAB 5.3 版本 (Release 11)• 2000 年又推出了更为简便易学的 MATLAB 6.0 版本 (Release 12)• 2003 年推出 Matlab6.5.1 (Release 13)• 2004 年推出 Matlab7.0 (Release 14)• 2007 年 3 月 1 日发布 Matlab 2007a( 支持多核操作 )• 2008 年 10 月 9 日发布 MATLAB 2008b• 2009 年 9 月 4 日 Matlab R2009b • 2010 年 3 月 5 日发布了 Matlab R2010a(Matlab7.10)

MATLAB 发展历史

Page 6: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

软件界面简介• 命令窗口• 开始 start 面板• 工作空间窗口• 命令历史窗口• 当前目录窗口• M 文件编辑窗口• 图形窗口

Page 7: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

Page 8: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

2 种工作方式• 命令窗口 Command Window 中直接输入

– 最简单的计算器使用法

• M 脚本文件 ( 程序执行方式 )– 使用 M 文件编辑窗口或其他纯文本编辑软件

Page 9: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

Command Window 命令窗口1. 直接计算

(12+2*(7-4))/3^22. 变量、矩阵输入

A = [1,2,3; 4,5,6; 7,8,9] 或: A=[1,2,3

4,5,6 7,8,9]

通过反复按键盘的箭头键,实现指令回调和编辑通过反复按键盘的箭头键,实现指令回调和编辑

Page 10: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

Matlab 搜索路径设置• 修改当前目录

– Current Directory 当前目录浏览器– CD 命令

• 搜索目录设置 ( 添加工具箱时比较有用 )– 搜索路径设置器 File—Set Path…– path 命令

Page 11: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

Matlab 帮助系统• 命令行帮助

– help 命令 / doc 命令• 联机帮助

– helpwin/doc 或者菜单操作“ Help--MATLAB Hel

p"

• 演示帮助– demo

Page 12: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

MATLAB 通用命令

Page 13: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

变量与运算• 变量无需预先定义类型

1 )以字母开头,后面可跟字母,数字和下短线;2 )大小写字母有区别,不超过 31个字符。

• 书写自由:多个表达式可以写在一行–表达式后面跟分号“;”,将不显示结果;– 跟‘,’或‘回车’,将显示表达式的计算结果;– 当一个表达式没写完就需换行时,应在该行末尾

键入‘…’之后再回车换行。

Page 14: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

• 数据显示格式– format long (short 、 short e 、 rational 等 )

• 复数– 1+2i; 5-4*i

Page 15: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

预定义变量

函数输出参数的个数nargout

函数输入参数的个数nargin

MATLAB版本version

虚数单位i 或 j

不定值NaN或 nan

∞值,正无穷大Inf 或 inf

内建的 π 值pi

MATLAB定义的正的极小值 =2.2204e-16 eps

最近一次计算结果的变量名ans

列出所有定义过的变量名称who

线上说明 , 如 help quit help

意义变量名

1

Page 16: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

1) 一般:变量 =表达式;

例如: x=sin(pi/12)-tan(pi/10)*8;

2)也可以:表达式;

此时等价于

ans=表达式

MATLAB 中的语句

Page 17: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

数组的创建• 常采用“ first:increment:last” 和函数“ li

nspace”两种方式来创建数组,如x=1:5

x=0 : 0.1 : 1

x=linspace(0, pi, 11)

• 引用格式: x(index) %index 可以是数组• x(3)• x(1:5)• x(1:2:5)• x([2,1,4])

Page 18: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

• 数组函数– max(x) 找出 x 数组的最大值 – max(x,y) 找出 x及 y 数组的最大值,会有二个极值分属 x及 y 数组 – [y,i]=max(x) 找出 x 数组的最大值以 y显示,其在 x 数组的位置以 i显

示 – min(x) 找出 x 数组的最小值 – min(x,y) 找出 x及 y 数组的最小值,会有二个极值分属 x及 y 数组 – [y,i]=min(x) 找出 x 数组的最小值以 y显示,其在 x 数组的位置以 i显

示 – mean(x) 找出 x 数组的平均值 – median(x) 找出 x 数组的中位数 – sort(v) 按升序排列– sum(x) 计算 x 数组的总和值 – prod(x) 计算 x 数组的连乘值 – cumsum(x) 计算 x 数组的累积总和值 – cumprod(x) 计算 x 数组的累积连乘值

Page 19: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

矩阵的创建• 特殊矩阵

– zeros(m, n) m 行 n列的零矩阵– ones(m, n) m 行 n列的全 1 矩阵 – eye(n) n阶单位矩阵– rand(m, n) m 行 n列的均匀分布随机数矩阵– randn(m,n) m 行 n列的正态分布随机数矩阵– diag(v) 以数组 v 为对角线元素的对角阵– triu(x) 矩阵 x 的上三角阵– tril(x) 矩阵 x 的下三角阵

Page 20: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

矩阵 ( 包括数组 ) 的剪裁和拼接

从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,“:”是非常重要的剪裁工具。

例如,键入: A=[1 2 3;4 5 6;7 8 9];

A(3, :) %A 的第三行输出: ans=

7 8 9

Page 21: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

键入: B=A(2:3, :) %A 的 2 , 3 行输出: B= 4 5 6 7 8 9键入: A(:, 1) %A 的第一列输出: ans= 1 4 7键入: A=[1 2 3;4 5 6;7 8 9]; C=A(1:2, [1 3]) 输出: C= 1 3 4 6还有 A(1:2:3, 3:-1:1),

Page 22: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列数要相同。

键入: D=[C, zeros(2,1)]输出: D= 1 3 0 4 6 0

键入: E=[D;eye (2),ones(2,1)]输出: E= 1 3 0 4 6 0 1 0 1 0 1 1

Page 23: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

数组和矩阵运算

+ 矩阵加法; - 矩阵减法;* 矩阵乘法; ’ 矩阵转置;^ 矩阵乘幂;\ 矩阵左除 ; / 矩阵右除。例如,设 A是可逆矩阵, AX=B 的解是 A左除 B,即 X=A\B ; XA=B 的解是 A右除 B,即 X=B/A 。

• 标量、数组(包括矩阵)的通常意义下的运算: “+” , “–”, “ *” , “ /” , “ ^” , “ ’ ”• 数组(包括矩阵)对应位置元素进行运算的特殊运算

符: “.*”, “./”, “.^”

Page 24: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

inv(A) 矩阵的逆; rank(A) 矩阵秩 det(A) 矩阵的行列式; orth(A) 正交化 poly(A) 特征多项式 d=eig(A), [v,d]=eig(A) 特征值与特征向量size(A) 返回一个二元素向量,第一个元素 为 A 的行数, 第二个元素为 A 的列数size(A,1) 返回 A 的行数;size(A,2) 返回 A 的列数length(A) 返回 max(size(A))

diag(A) 提取 A 的对角元素返回列向量 reshape(c,2,6) 按 2 行 6列重排矩阵

矩阵函数

Page 25: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

三角函数: sin(x), sinh(x), asin(x), sinh(x),

cos(x), tan(x), cot(x), sec(x), csc(x) 等。 指数函数: exp(x), log(x), log10(x), log2(x),

sqrt(x) 等。 整值函数:朝零方向取整 fix(x), 朝 - 方向取整 floor(x), 朝 + 方向取整 ceil(x), 四舍五入到最接近的整数 round(x), 符号函数 sign(x) 等 其他数学函数:绝对值或复数的幅值 abs(x)

MATLAB 中的数学函数

Page 26: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

程序编写

四种循环和选择控制结构

switch-case-end 结构

if-else-end 结构

while 循环

for 循环

Page 27: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

在命令窗口进入程序编辑器输入、保存M文件,然后在命令窗口键入你建立的 M文件的文件名即可逐次执行其中的命令。

保存按钮

在此空白框键入 M 文

点击即可运行

Page 28: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

MM文件文件命令 M文件:一些命令行的组合。 函数 M文件:定义函数的程序,具有特定格式。 例: x=[2 3]; f=cost(x)

function f=cost(x)f=100*(x(2)-x(1)^2)^2-(1-x(1))^2;

函数 M文件的形式为

function [ 输出变量列表 ]= 函数名(输入变量列表)函数体语句;

Page 29: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

function [income,profit]=total(ppri,spri,samnt)income= sum(spri.*samnt);profit=income-sum(ppri.*samnt);

P=[7.15 8.25 3.2 10.3 6.68 12.03 16.85 17.51 9.3];

Sp=[11.1 15 6 16.25 9.9 18.25 20.8 24.15 15.5]

Sa=[568 1205 753 580 395 2104 1538 810 694];

[in,pr]=total(P,Sp,Sa)

例例

Page 30: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

循环选择控制结构关系运算符:

<, >, <=, >=, = = (等于), ~=(不等于)

关系运算比较两个数值,当给出的关系式成立时,结果为 1(表示真),否则为 0(表示假)。

逻辑运算符:

&(与运算) , | (或运算), ~(非运算)

程序流程控制

Page 31: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

按条件执行命令组

if 条件式 1, 命令组 1 ;elseif 条件式 2, 命令组 2;…… ;else 命令组 k ;end

分支语句

当条件满足时执行循环命令组

while 条件式, 命令组;end

循环语句

对于循环变量依次取数组中的值,循环执行命令组直到循环变量遍历数组

for 循环变量 = 数组 , 命令组;end

循环语句

解释语法类型

提示错误并显示字符串说明error( 字符串 )中断语句

中断该程序,返回return中断语句跳出循环体break中断语句

暂停执行,直到击键; pause(n)表示暂停 n秒后继续

pause中断语句

按分支变量的取值,执行命令组

Switch 分支变量 ,Case 值 1, 命令组 1 ;Case 值 2, 命令组 2;…… ;otherwise 命令组 k ;end

分支语句

解释语法类型

控制流

Page 32: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

While 循环的一般形式为: while 关系表达式 {statments} end如:s=0;n=1while s<=100 s=s+n^2; n=n+1;endn,s

关系表达式

statments

end 的后续语句

Yes

No

循环选择控制结构

Page 33: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

forfor 循环循环for 循环的一般形式for x=a {statments}end

如 , for k=1:4 x(k)=1/k; end format rat % 设置输出格式为有理数 x

k=1, x=a(:,1)

k<=size(a,2)

statments

end 的后续语句

Yes

No

k=k+1,

x= a(:,k)

Page 34: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

if-else-endif-else-end 结构结构

最简单的形式:

if 关系表达式 {statments}end

关系表达式

statments

end 的后续语句

Yes

No

Page 35: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

例如,可用以下程序得到符号函数。function y=SIGN(x)if x<0 y=-1;elseif x==0 y=0;else y=1;end

当有三个或更多的选择时if 关系表达式 (1) {statments}(1)elseif 关系表达式 (2) {statments}(2)...elseif 关系表达式 (n) {statments}(n)else {statments}(n+1)end

if-else-endif-else-end 结构结构

Page 36: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

switch-case-endswitch-case-end 多分支选择结构多分支选择结构

switch lower(NAME)case {'zhanghua', 'lijiang'}, disp( 'He comes from China.')case 'peter', disp( 'He comes from United States.')case 'monika', disp( 'She comes from Germany')otherwise, disp( 'He or she comes from other... countries.')end

Page 37: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

一般形式switch 表达式(标量或字符串)case 值 1, 语句体 1case { 值 2.1, 值 2.2, ...} 语句体 2 ...otherwise, 语句体 nend

switch-case-endswitch-case-end 多分支选择结构多分支选择结构

Page 38: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

字符串操作

可用 class函数测试变量的类型

键入: name='ZhangHua'

显示:name=

Zhang Hua

键入: f='cos(x)'

显示: f=

cos(x)

键入: g='3*x^2+2*

x+6=0'显示:g=

3*x^2+2*x+6=0

Page 39: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

例例 用专门函数 char 创建多行串数组 .

S1=char('This string array','has two rows.')

S1 =

This string array

has two rows.

S2=char(' 这 ',' 字符 ',' 串数组 ',' ',' 由 5 行组成 ')

size(S2) 5 行 5列

2 行 17列

Page 40: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

例 例 最常用的数组 / 字符串转换函数 num2str, mat2str

B=rand(2,3);

B_str=mat2str(B,4)

[0.1389 0.1987 0.2722;0.2028 0.6038 0.1988]

Expression=['exp(-',B_str,')']

exp(-[0.1389 0.1987 0.2722;0.2028 0.6038 0.1988])

eval(Expression)

ans =

0.8703 0.8198 0.7617

0.8164 0.5467 0.8197

Page 41: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

例 例 综合例题:在 MATLAB 计算生成的图形上标出图名和最大值点坐标。a=2; w=3; t=0:0.01:10; y=exp(-a*t).*sin(w*t); plot(t,y,'b'),

hold on, plot(t,zeros(size(t)),‘k’); %画水平线[y_max,i_max]=max(y); plot(t(i_max),y_max,'r.','MarkerSize',

20)

t_text=['t=',num2str(t(i_max))];

y_text=['y=',num2str(y_max)];

max_text=char('maximum',t_text,y_text);

text(t(i_max)+0.3,y_max+0.05,max_text)

tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];

title(tit),xlabel('t'),ylabel('y'), hold off

Page 42: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

Page 43: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

数学实验之

-- MATLAB初步

实验目的

软件环境

数值运算

图形功能

程序编写

课堂延伸

符号运送

操  练

结 束

符号运算字符串入门

符号表达式的建立

符号和数值之间的转换

因式分解、展开和简化

符号与数值间的转换

符号微积分

符号函数画图

Page 44: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

符号变量和符号表达式的建立1. 用函数 syms 定义符号变量和符号表达式调用形式: syms var1 var2 ….例: syms y u; p=exp(-y/u); q=y^2+u^3+u*y

符号运算

2. 用函数 sym 来建立符号表达式调用格式为:变量 =sym(‘表达

式 ')键入:y=sym(‘2+cos(x)’)将显示y= 2+cos(x)

键入 X=sym(‘[a,b,c;d,e,f;b,f,

d]’)将显示X=[a,b,c][d,e,f][b,f,d]

Page 45: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

的行列式值、逆和特征根

例例 求矩阵

Aa a

a a

11 12

21 22

syms a11 a12 a21 a22

A=[a11,a12;a21,a22]

DA=det(A),

IA=inv(A), EA=eig(A)

Page 46: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

符号运算与操作 符号表达式可以进行加、减、乘、除及幂运算等

的基本的代数运算。

运算符 : + - * / ^

因式分解、展开和简化 collect 合并同类项 expand 展开 factor 分解因式 simplify 化简 simple 求表达式的最简形式

Page 47: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

syms fai1 fai2

y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))

输出为:

y =

sin(fai1-fai2)

sin cos cos sin sin( ) 1 2 1 2 1 2

例例 用符号计算验证三角等式

Page 48: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

符号微积分• diff(f) 对缺省变量求微分

• diff(f,v) 对指定变量 v 求微分

• diff(f,v,n) 对指定变量 v 求 n 阶微分

• int(f) 对 f 表达式的缺省变量求积分

• int(f,v) 对 f 表达式的 v 变量求积分

• int(f,v,a,b) 对 f 表达式的 v 变量在( a,b) 区间求定积分

Page 49: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

syms A t tao w

yf=int(A*exp(-i*w*t),t,-tao/2, tao/2);

Yf=simple(yf)

Yf =

2*A*sin(1/2*tao*w)/w

例例 验证积分

2

2sin

2/

2/

AdtAe ti

Page 50: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

符号和数值之间的转换 • 用 sym 将数值表达式转换为符号表达式

调用格式为:变量 =sym(‘数值表达式’ )

如,键入: a=sym('1+2*sqrt(3)')

显示: a= 1+2*sqrt(3)

• 用 numeric 将符号表达式转换为数值表达式

如,键入: numeric(a) 显示:  ans = 4.4641

Page 51: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

可用 eval 计算符号表达式的值

调用格式: eval (表达式)其中表达式可以是符号表达式或字符串,也可以是有效的MATLAB命令或语句,其作用是执行该表达式。

如键入: f=sym('2+x^2'); x=[1,2;3,4]; y=eval(f) 输出: y =

9 12 17  24

或键入: x=[1,2;3,4]; y=eval('2+x^2')

Page 52: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

符号函数画图

• ezplot(f) 在默认区间 [-2 , 2 ] 绘图• ezplot(f,[a,b]) 在区间 [a,b] 上绘图• ezplot(x,y,[tmin,tmax]) 绘制由参数方程表示

的曲线• ezpolar(f,[a,b]) 绘制 ruo=f(theta) 的极坐标

函数曲线• ezplot3, ezmesh, ezsurf, ezcontour类似

Page 53: 主讲:蒋志迪 宁波大学信息科学与工程学院    办公室:曹光彪信息楼 424 电话: 665929    email : bighandjzd@126

多媒体信息处理系统设计: Matlab基础信息科学与工程学院宁波大学宁波大学 Ningbo UniversityNingbo University

End of This LectureEnd of This Lecture

Thank!Thank!