当前位置:首页 >> 理化生 >>

2012-2013最新MATLAB课件


《MATLAB 程序设计》 课程教学幻灯
授课教师: 孙 蓬 电子邮箱: sp214@163.com 工作微博:新浪微博 @软件技术学习 所在单位:计算机学院基础基础部 办公地点:计算机学院楼C北106# 基础楼四层409

了解课程
Matlab是个什么软件? 1 帮我们计算。 (1+1) 2 帮我们绘图。 (x=(0:0.1:2*pi

);y=sin(x);plot(x,y)) 3 帮我们利用函数。(paintFlower) 4 航空、航天、航海、力学结构、数学等专业 都有各自特色的应用。

了解课程
一、课程特色 1 从零开始 2 精讲多练 3 崇尚个性

了解课程
一、课程主旨 1 从零开始
# 本课程的教学内容以基础入门为主。 不要求学生有程序设计方面的先修课程。 # 但是如果具有以下知识点学习更轻松: 一门程序设计语言(C/VB/其他); 高等数学知识;线性代数知识; 熟悉Windows ;熟练的键盘操作能力;

了解课程
一、课程主旨 2 “精讲多练”,轻松学习

了解课程
一、课程主旨 3 崇尚个性,适合各个专业
(1)入门容易熟练难。 (2)MATLAB与专业息息相关。
“软件技术(MATLAB)专业应用大赛”酝酿中。。。

了解课程
二、课堂及实验课要求 1 课堂。 2 实验。 3 请假。

了解课程
二、课堂及实验课要求 1 课堂
课堂随机提问(点名)是本课程的特点之一。

课堂上不要出现随意旷课,迟到,早退, 接打电话等不文明行为。每次将记录在案。 如确有急事,请举手示意一下即可。

了解课程
二、课堂及实验要求 2 实验
勤能补拙。光说不练假把式。 注意:实验课独立,成绩独立。 第一次实验课按班级和学号排好座位,一 学期无特殊原因不变化。不用每次找座位, 并且方便老师定点交流。

了解课程
二、课堂及实验要求 3 请假(宽严并济)
* * 请假(理论课实验课)
必须课前通过班长或者微博或邮件通知到我。否则无效。

请假(考试)必须经过辅导员和学院两级批准。

* 如有作假,发现即取消参加考试资格。 * 理论和实验无故旷课累计达到三次者,取消参加本课 程的考试资格。

了解课程
三、课程安排 总课时:72学时 理论课学时40 (4学时×10周) 实验课学时32 (3学时×10周+2学时考试)

了解课程
四、考试方案
* 理论课:闭卷笔试。 笔试卷面分。 * 实验课:开卷 平时成绩和综合成绩。

了解课程
五、认识教学用课本

《MATLAB基础教程 》
1 西工大非计算机专业MATLAB教学用书 第一版 2 孙蓬等编著,欢迎大家查错纠错。 西工大友谊校区本部基础楼409室 西工大长安校区计算机学院楼C北106室 联系方式 sp214@163.com

了解课程
六、参考用书 若干电子书籍供大家使用 ~/for Stu 如果你们下载到了好的资料,请与 大家共享~谢谢!

了解课程
六、参考用书 参考网站: www.matlabsky.com www.ilovematlab.com 欢迎推荐!

关于排实验课的若干问题

金工实习: 冲突问题 选修课: 冲突问题 课后任务: (1)确定大班长,各小班课代表。 (2)完成班级名册; (3)提供课表,找出各个班级空余时间。 大班长与我联系,确定实验课时间。 (很重要!)

ok,开始学习了!

第一章 MATLAB概述
* 第一节教学目标
1 了解MATLAB软件 2 安装MATLAB软件 3 了解MATLAB的软件环境

第一章 MATLAB概述
一、 MATLAB

MATrix

+

LABoratory

第一章 MATLAB概述
二、 MATLAB简史
MATLAB本身由C语言编写, 是MathWorks公司的产品。 目前主流版本: MATLAB7.*

第一章 MATLAB概述
三、 MATLAB支撑平台 Windows/NT操作系统; Macintosh的Mac OS操作系统; Solaris,Unix,Linux等操作系统。

第一章 MATLAB概述
四、 MATLAB特点 1 强大的数值运算功能; 2 强大的图形处理能力; 3 高级但简单的程序环境; 4 丰富的工具箱(参见表1-1)。

第一章 MATLAB概述
四、 MATLAB特点

第一章 MATLAB概述
五、MATLAB的安装

1 系统要求 硬件:CPU;内存;硬盘; 显示器;显卡;声卡; 软件:Windows 95/98 操作系统; Windows Office97 ; Web Browser(IE3.0 ); Adobe Acrobat Reader ; Java Virtual Machine;

第一章 MATLAB概述
五、MATLAB的安装

2 安装方法和步骤 Step1:找到安装光盘/安装文件; Step2: 开始安装(一路next即可); (细节处请关注每个版本的区别!) Step3:安装成功。

第一章 MATLAB概述
与安装相关自学内容(独立阅读内容):
install_guide.pdf

第一章 MATLAB概述
六、MATLAB的视窗环境

看看MATLAB软件到底是什么样?

第一章 MATLAB概述
六、MATLAB的视窗环境

第一章 MATLAB概述
六、MATLAB的视窗环境

第一章 MATLAB概述
六、MATLAB的视窗可视化环境

* * * * * *

标题栏(Title Bar) 菜单(Menu) 工具栏(ToolBar) 视图一:current directory/workspace 视图二:command window 视图三:command history

第一章 MATLAB概述
六、MATLAB的视窗环境

* 标题栏
标题 + 窗口最小化按钮+窗口缩放按钮+关闭按钮

第一章 MATLAB概述
六、MATLAB的视窗环境

* 菜单

第一章 MATLAB概述
六、MATLAB的视窗环境

* 菜单 (1) File: 新建+ 打开+ 保存+ 关闭+ 打印+ 退出

第一章 MATLAB概述
六、MATLAB的视窗环境

* 菜单 (2) Edit: 对源代码和窗体进行编辑。

第一章 MATLAB概述
六、MATLAB的视窗环境

* 菜单 (3) View/Window: 查看当前系统打开的所有窗口。 不同窗口之间的转换。

第一章 MATLAB概述
六、MATLAB的视窗环境

* 菜单 (4) Help: 实现MATLAB的帮助功能。

第一章 MATLAB概述
六、MATLAB的视窗环境

* ToolBar
提供了一些最常用的菜单命令的快捷方式。

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图一: current directory/workspace

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图二:command window 用于输入和显示计算结果。 例如: >>1+2+3+4+5

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图二:command window “>>”: 提示符 提示用户目前系统已经处于等待状态,用户可 以在提示符后面键入命令,回车后,系统会解释执 行所输入的命令,并给出计算结果。

例如: >>ver

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图二:command window “上下左右箭头,Home,End,Delete,Insert”: 功能一用便知。

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图二:command window “Ctrl+C”: 终止正在执行中的MATLAB的工作。

第一章 MATLAB概述
六、MATLAB的视窗环境

* 视图二:command window
“命令行尾+ 分号;”: 不在屏幕上显示运行结果。

例如: >>x=6; >>x=6

第一章 MATLAB概述
六、MATLAB的视窗环境

* 视图二:command window
“命令行尾+ 逗号,”:

例如: >>x=6,y=8

第一章 MATLAB概述
六、MATLAB的视窗环境

* 视图二:command window “续行符 …”:
如果一个语句在一行内书写太长了,可能要另起一行接 着写,在这种情况下我们需要在第一行末打上半个省略号 (...),再开始第二行的书写。 举例如下,下面这两语句是等价的。 x1=1+1/2+1/3+1/4+1/5+1/6; And x1=1+1/2+1/3+1/4 ... +1/5+1/6;

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图二:command history

第一章 MATLAB概述
六、MATLAB的视窗环境 * 视图二:command history
(1)历史命令窗口用于记录用户在命令窗口中键入的命令。 (2)双击这些命令可使它再次执行。
示例演示: 1+1等命令。

第一章 MATLAB概述
七、MATLAB的在线帮助

寻求帮助方法: 1 帮助命令 help 2 查找命令 Lookfor 3 帮助窗口 Help Window 4 在线帮助页/通过网络链接到MathWorks公司

第一章 MATLAB概述
七、MATLAB的在线帮助

寻求帮助方法: 1 帮助命令 Help 语法:help <topic>

第一章 MATLAB概述
七、MATLAB的在线帮助

寻求帮助方法: 2 查找命令 lookfor 语法:lookfor <topic>

第一章 MATLAB概述
七、MATLAB的在线帮助

寻求帮助方法: 3 帮助窗口 Help Window (1)菜单help (2)双击Toolbar上的问号按钮 (3)键入helpwin命令 (4)键入helpdesk命令

第一章 MATLAB概述
七、MATLAB的在线帮助

寻求帮助方法:

4 在线帮助页 通过网络链接到MathWorks公司

第一章 MATLAB概述
八、退出MATLAB

1 键入命令Exit 2 键入命令Quit 3 直接关闭MATLAB的窗口

课后任务

一、亲自安装MATLAB一次。 并总结安装技巧。 二、上机熟悉MATLAB软件环境。 三、找几个你手边熟悉的计算公式, 代入已知数据,用MATLAB计算结果。

第一章 MATLAB概述
九、应用举例

【书例题1-1】计算式子“1+2+3+4+5” 的值。观察分号和续行符的使用方法以及 ans变量的用法。
>> 1+2+3+4+5 >> 1+2+3+4+5; >> 1+2+3+4 ... 5 %计算“1+2+3+4+5”的值 %使用了分号后,计算结果不在命令窗口输出 %使用了续行符“…”,

第一章 MATLAB概述
九、应用举例

【书例题1-2】一个半径r=5的圆,计算其 面积area的值。
>>r=5; %指定半径r的值,分号确保赋值后无需在命令窗口显示r的值 >>area=pi*r^2 %计算圆面积,pi是圆周率常数

第一章 MATLAB概述
九、应用举例

【书例题1-3】 disp屏幕输出函数。

>> disp('the area is : '); disp(area); %屏幕输出字符串和变量的值 %输出超链接 >> disp('<a href ="http://www.mathworks.com">The MATLAB Site</a>')

第一章 MATLAB概述
九、应用举例

例题: 设两个复数a=1+2i,b=3-4i, 计算a+b,a-b,a*b,a/b。 >> a=1+2i;b=3-4i; >> a+b >> a-b >> a*b >> a/b

第一章 MATLAB概述
九、应用举例


例题: 计算下式的结果,其中x=-3.5 。 sin(|x|+|y|) Y=6.7
sin(|x|+|y|) cos(|x+y|)



cos(|x+y|)

>> x=pi/180*(-3.5);y=pi/180*6.7; >> z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y)))

第一章 MATLAB概述
九、应用举例

例题: 我国人口按照2000年第五次全国 人口普查的结果为12.9533亿,如果年增长率为 1.07%,求公元2010年末的人口数。 计算人口的公式为:P1=P0(1+r)n,其中: P1为几年后的人口,P0为人口初值,r为年增长率, n为年数。

第一章 MATLAB概述
九、应用举例

用MATLAB解题: >> r=0.0107; >> n=2010-2000; >> p0=12.9533E8; >> p1=p0*(1.0+r)^n

第一章 MATLAB概述
九、应用举例

例题: 求解ax2+bx+c=0一元二次方程的根, 其中a=1,b=2,c=3。 求根公式:x1,2= ?b ? 2ba ? 4ac >> a=1;b=2;c=3; >> d=sqrt(b*b-4*a*c); >> x1=(-b+d)/(2*a) >> x2=(-b-d)/(2*a)
2

第一章 MATLAB概述

发现:? (1)MATLAB是一个计算器。

第一章 MATLAB概述
发现:? (2)有些规律。 输入已知条件; 带入公式(利用一些函数); 开始计算!

第一章 MATLAB概述
发现:? (3)找出一些可用函数。

第一章 MATLAB概述
发现: (1)MATLAB是一个计算器。 (2)有些规律。 输入已知条件; 带入公式(利用一些函数); 开始计算! (3)找出一些可用函数。

第一章 MATLAB概述
* 第二节教学目标
1 MATLAB的工作空间。 2 MATLAB的搜索路径。

第一章 MATLAB概述
一、MATLAB的工作空间
工作空间是MATLAB的一个变量管理中心。

什么是工作空间?

*管理系统所提供的特殊变量 *管理用户自己定义的所有变量

第一章 MATLAB概述
一、MATLAB的工作空间
(1)显示变量的 名称、尺寸、字节、长度等信息 (2)变量处理 在某一变量上单击鼠标右键会弹出菜单。

第一章 MATLAB概述
一、MATLAB的工作空间
(1)显示变量的 名称、尺寸、字节、长度等信息 (2)变量处理 在某一变量上单击鼠标右键会弹出菜单。

第一章 MATLAB概述
一、MATLAB的工作空间
*

什么是工作空间? 我们需要知道的:
当MATLAB启动后,系统会自动建立一个工作空间, 这时的工作空间内只包含系统所提供的一些特殊变量, 如pi,eps,nan,i等。 随着用户的使用,逐渐增加一些用户自己定义的变量。 使用who,whos可以查看到当前工作空间所有变量的情况。 使用clear可以删除全部或部分工作空间中的变量。 关闭MATLAB,释放工作空间,所有变量会被释放。

* * * *

第一章 MATLAB概述
一、MATLAB的工作空间
>> who >> whos >>clear r >>clear >>clear all >>clc >> s=[1 2 3 4 5]; >> size(s) >> length(s) >> p='helloworld'; >> size(p) >> length(p)

【书例题】执行who、whos、clear、size和length等命令 什么是工作空间? 查询变量信息。注意观察Workspace窗口的变化。

第一章 MATLAB概述
二、MATLAB的搜索路径

键入下面这个命令的结果是什么? >> path

第一章 MATLAB概述
二、MATLAB的搜索路径

打开菜单项file/setpath会出现什么?

第一章 MATLAB概述
二、MATLAB的搜索路径

注意:只有在当前目录或搜索路径下的文件、 函数可以被运行或调用。否则视为非法命令。

*默认当前目录为~My Documents\MATLAB *早期版本略有细微差异。

第一章 MATLAB概述
二、MATLAB的搜索路径
MATLAB每遇到一个命令(例如test)时, 其处置过程为:

1. 将test视为使用者自定义的变量。 2.若test不是使用者自定义的变量,将其视为系统定义的常量。 3.若test不是常量,检查其是否为当前工作目录下的M文件。 4.若不是,则由搜寻路径寻找是否有test.m的文件。 5.若在搜寻路径中找不到,则MATLAB会印出错误讯息。

* 处置过程可能因版本不同而略有不同。

第一章 MATLAB概述
二、MATLAB的搜索路径

which命令: 查询某一命令是在搜寻路径的何处. What命令:显示当前目录里MATLAB相关文件及路径。 【书例题1-7】which和what命令。 >> which help >> which lookfor >> what

第一章 MATLAB概述
三、MATLAB中数据的读写

思考: 关闭MATLAB,释放工作空间,所有变量会被释放。 这样会出现什么问题?

第一章 MATLAB概述
三、MATLAB中数据的读写
解决方法: 将工作空间中的变量存储到文件中。 这样,即使退出了MATLAB系统,变量依然存在。 需要使用时,将这些变量从文件中读取出来即可。

第一章 MATLAB概述
1 save命令 功能:将变量以二进制的方式存储至 后缀名为.mat的文档中。 格式:save filename

第一章 MATLAB概述
1 save命令 命令实例:假定内存中已经存在变量X,Y,Z
save myFile X Y Z dir . myFile.mat ..

1 save命令

第一章 MATLAB概述

注意事项:
1 ) 存储文件为.mat的二进制mat文档中。 3 ) 若为save filename x 则只将变量x存储到文 件中去。

2 ) 若文件名缺省,则自动存储到matlab.mat中。

1 save命令

第一章 MATLAB概述

注意事项:
4 ) 若为save filename u w –append 则将变量u,w添加 到文件名为filename.mat的文件中。 5 ) 若为save filename u w –ascii 则将变量u,w保存为 filename的8位ASCII文档。 6) 若为save filename u w –ascii -double则将变量u,w 保存为filename的16位ASCII文档。

1 save命令

第一章 MATLAB概述

ASCII文档特色(使用-ascii后缀):
(1)ASCII文档可以看到文档内容。 (2)默认的存储格式是二进制的mat文件。 存储ASCII文档必须加-ascii。 (3)save -ascii通常只存为一个变量,原有变量名消失。 load载入时,取用文件名为变量名。 (4)对于复数,save -ascii后只存实部,虚部抛弃。 (5)ASCII文件通常比二进制文件大,二进制文档较小, 读取速度快。

1 save命令

第一章 MATLAB概述

建议: 尽量使用二进制文件存储MATLAB变量。

2 load命令

第一章 MATLAB概述
功能:读取保存在文件中的变量。 格式:load filename load filename –ascii

load filename –mat

2 load命令

第一章 MATLAB概述
注意事项: 首先,MATLAB在系统默认路径中自动 寻找名称为filename.mat的二进制文件。 其次,若无该文件,则找filename的文件, 用ASCII方式载入。

第一章 MATLAB概述
2 load命令
【例题】: >> clear all; >> a=1;b=2;c=3; >> save mydata1 >> save mydata2 a b >> load mydata1 >> load mydata1 a

课后任务
一、熟悉MATLAB系统环境。 二、熟悉工作空间以及变量的读写。 三、熟悉搜索路径的设置。 四、阅读“实用技巧”并自己操作。

第二章 MATLAB程序设计基础
* 第一节教学目标
1 基本运算介绍。 2 变量的概念。 3 系统函数的概念。 4 一般的应用问题转换为计算机模型。

第二章 MATLAB程序设计基础
一、基本运算

第二章 MATLAB程序设计基础
一、基本运算 简单的数学运算
>> 1+2+3+4+5 >> 1+2+3+4+5;

第二章 MATLAB程序设计基础
一、基本运算 复杂一点点的数学运算
已知 : x=15,y=10,z=7 求解: (x+2Y+5z)/3 >> x=15;y=10;z=7; >> (x+2*y+5*z)/3

第二章 MATLAB程序设计基础
一、基本运算

操作数

运算符

第二章 MATLAB程序设计基础
一、基本运算 1 MATLAB算术运算符 加、减、乘、除、幂次方 + - * / \ ^
运算次序:自左向右运算。 ^优先级最高,乘除次之,后加减。 如果有括号,括号优先执行。

第二章 MATLAB程序设计基础
一、基本运算 2 format命令 用来显示计算的精度。 不是用来改变计算的精度。
MATLAB默认以double(双精度)进行运算和存储。 使用format可以控制数据不同的显示格式。
format format format format format format short short e long long e rat bank

第二章 MATLAB程序设计基础
一、基本运算 2 format命令
用pi来测试一下显示精度: >>pi >>format short >>pi >>format long >>pi >>format rat >>pi

第二章 MATLAB程序设计基础
二、变量
变量——程序执行过程中可以变化的量。
MATLAB中的变量可以由用户指定变量名。 通过变量名随时可以引用变量和修改变量。

第二章 MATLAB程序设计基础
二、变量
MATLAB特殊之处:无需进行变量声明。
(遇到新变量名时,自动生成变量, 并指定合适的存储空间。 如变量早已存在,则自动更新。) ***利与弊的分析***

第二章 MATLAB程序设计基础
二、变量 1.系统特殊变量
>>1+2+3+4+5 ans 是个特殊的系统变量。 没有指定变量来存储运算结果时, 系统会自动将结果存储在临时变量ans中。

第二章 MATLAB程序设计基础
二、变量 1.系统特殊变量
MATLAB的系统特殊变量
ans: 临时变量 pi : π inf : 无穷大 eps :极小值 NaN:Not a Number (Not Available) nan:同上 i: 虚数sqrt(-1) j: 虚数sqrt(-1)

第二章 MATLAB程序设计基础
二、变量 2 自定义变量
注意我的这些操作: >> a= 1 >> abc= 1+2+3+4+5 >> a=1;b=3;c=5; >> A=2,B=4,C=6 >>area = r^2 ?

第二章 MATLAB程序设计基础
二、变量 2 自定义变量命名规则
* 变量名由字母、数字和下划线组成。 字母间不可留空格且第一个字符必须为字母 * 区分大小写。 * 变量名的长度上限为n个字符。

补充: * 变量名不能为中文; * 系统变量名不要和自定义重名。

第二章 MATLAB程序设计基础
二、变量
万一自定义变量名和系统变量名 一样结果会怎样?怎么办?

第二章 MATLAB程序设计基础
二、变量

观察下面的变量名是否合理?
>>isvarname myVarName >>isvarname 7myVarName

第二章 MATLAB程序设计基础
二、变量 3 获取当前变量 命令行直接键入变量名。

第二章 MATLAB程序设计基础
二、变量 4 变量的显示精度
控制显示精度函数: format 控制精度计算的函数: ? digits(n):设置缺省的精度; ? vpa(S,n):将S表示为n位有效位数的形式。

第二章 MATLAB程序设计基础
4 变量的显示精度
问题: 积少成多的累计误差?

( 1/3+1/3)=?
>> format long >> 1/3+1/3

第二章 MATLAB程序设计基础
4 变量的显示精度

>> s= 1/3+1/3 >> digits(2) >> s ? >> vpa(s) >> vpa(s,10) >> s= 1+1/3+1/3 ?

第二章 MATLAB程序设计基础

二、变量 5 查看变量 who: 查看当前工作区(workspace)的变量。 whos:查看当前变量的详细信息。

第二章 MATLAB程序设计基础
二、变量 6 清除变量 clear:清除所有定义过的变量。 clear 变量名:清除某个变量。

第二章 MATLAB程序设计基础
二、变量 7 变量的初始化(三种方式)
1.用赋值语句初始化变量。 2.用input 函数从键盘输入初始化变量。 例如:>> in1 = input('enter data:');
Enter data:1.23 >> in2 = input('enter data:','s') Enter data:1.23 >> in1+in2 (?)

3.从文件读取一个数据。(以后介绍)

第二章 MATLAB程序设计基础
二、变量 8 变量的作用域

(1)局部变量(Local) (2)全局变量(Global) (3)永久变量(Persistent)

第二章 MATLAB程序设计基础
二、变量 7 变量的作用域
局部变量:在函数中使用的变量, 只能在函数的范围内使用。 全局变量:在命令文件或工作空间中定义。 用global定义全局变量。 global Gvar1 Gvar2 Gvar3 永久变量:只能在函数文件中定义和使用, 只允许定义它的函数存取。 只有清除函数或者关闭MATLAB时, 才能从内存中清除它们。 persistent perVar;

例如:(?) 四、函数相关知识 >> global Gvar (!!) func1.m func1.m function y=func1(x) 3 变量的作用域 function y=func1(x) global Gvar; (?) global Gvar; 局部变量:在函数中使用的变量, y=x; Y=x; Gvar=x*10 只能在函数的范围内使用。 Gvar=x*10 func2.m 全局变量:在命令文件或工作空间定义。 func2.m function y=func2(x) 用global定义全局变量。 function y=func2(x) global Gvar; y=x; global Gvar; global var1 var2 var3 Gvar=x*100 Y=x; Gvar=x*100

第二章 MATLAB程序设计基础 例如:

第二章 MATLAB程序设计基础
tips:尽量不使用全局变量和永久变量!

第二章 MATLAB程序设计基础
三、常用函数
初等数学函数:help elfun 高等数学函数:help specfun help elmat

第二章 MATLAB程序设计基础
三、常用函数
注意问题:
(1)等式中,函数一定是出现在等式的右边。 (2)函数参数要求。(变量个数和格式要求) (3)允许函数嵌套。

第二章 MATLAB程序设计基础
四、现实问题转化为数学模型 例如:哥哥弟弟年龄问题。
哥哥比弟弟大19岁,哥哥年龄是弟弟的3 倍还多1,问:哥哥和弟弟的年龄分别是多少?

第二章 MATLAB程序设计基础
四、现实问题转化为数学模型 例如:吃桃问题。
桃子1毛钱一个,每3个桃核可以换一 个桃子。如果有一元钱,问:一共能吃到多 少桃子?

课后任务
一、熟悉基本数学运算。 二、熟练使用变量的相关应用。

第二章 MATLAB程序设计基础
* 第二节教学目标
通过实例演练熟悉部分常用函数。

第二章 MATLAB程序设计基础

实战演练常用函数的使用

第二章 MATLAB程序设计基础

函数?

小整理:MATLAB常用的基本数学函数
abs(x):纯量的绝对值或向量的长度 sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 angle(z):复数z的相角 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为多项分数展开 rats(x):将实数x化为分数表示

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础
小整理:MATLAB常用的基本数学函数
sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数 log2(x):以2为底的对数 log10(x):以10为底的对数

第二章 MATLAB程序设计基础
实战1:函数 abs
功能 数值的绝对值与复数的幅值 格式 Y = abs(X) %返回参量X的每一个分量的绝对值; %若X为复数的,则返回每一分量的幅值 % abs(X) = sqrt(real(X).^2+imag(X).^2) 例 >> x= -18; >> z1 = abs(x) >> y= -2+ 4i; >> z2 = abs(y)

第二章 MATLAB程序设计基础
实战2:函数 sqrt
功能 求平方根函数 格式 Y = sqrt(X) % 数值的平方根运算 例 >> x= 16; >> z1 = sqrt(x) >> y= -18; >> z2 = sqrt(y)

>> f= 2+ 4i; >> z3 = sqrt(f)

第二章 MATLAB程序设计基础
实战3:函数 exp
功能 以e为底数的指数函数 格式 Y = exp(X) % 对参量X的每一分量,求以e为底数的指数函数Y。 % X中的分量可以为复数。 % 对于复数分量如,z = x +i*y, % 则相应地计算:e^z = e^x*(cos(y) + i*sin(y))。



>> x= 3; >> z1 = exp(x)
>> y= -3; >> z1 = exp(y) >> f= 2+ 4i; >> z3 = exp(f)

第二章 MATLAB程序设计基础
实战4:函数 log

功能 自然对数,即以e为底数的对数。 格式 Y = log(X) % 对参量X中的每一个元素计算自然对数。 % 其中X中的元素可以是复数与负数,但由此可能得到意想不到的结果 % 若z = x + i*y,则log对复数的计算如下: % log (z) = log (abs (z)) + i*atan2(y,x)

例:

>> x= 20.0855 >> z1 = log(x) >> f= 2+ 4i; >> z3 = log(f)
下面的语句可以得到无理数π的近似值:

>>pai = abs(log(-1))

第二章 MATLAB程序设计基础
实战5:函数 log10
功能 常用对数,即以10为底数的对数。 格式 Y = log10(X) %计算X中的每一个元素的常用对数, % 若X中出现复数,则可能得到意想不到的结果。

例 >> x= 10; >> z1 = log10(x) >> y= -10; >> z1 = log10(y) >> f= 2+ 4i; >> z3 = log10(f)

第二章 MATLAB程序设计基础
实战6:函数 lcm
功能 整数x和y的最小公倍数 格式 z = lcm(x,y) %计算整数x和y的最小公倍数

例 >> x= 10; y=23; >> z1 = lcm(x,y) >> x= 10; y=2; >> z2 = lcm(x,y)

>> x= 10; y=-2; >> z3 = lcm(x,y)

//?

第二章 MATLAB程序设计基础
实战7:函数 gcd
功能 整数x和y的最大公约数 格式 z = gcd(x,y) %计算整数x和y的最大公约数

例 >> x= 10; y=23; >> z1 = gcd(x,y) >> x= 10; y=2; >> z2 = gcd(x,y)

>> x= 10; y=-2; >> z3 = gcd(x,y)

第二章 MATLAB程序设计基础
实战8:函数 real
功能 复数的实数部分。 格式 Y = real(Z) %返回输入参量Z的每一个分量的实数部分。

例 >> f = 3+8i; >> z=real(f)

第二章 MATLAB程序设计基础
实战9:函数 imag

功能 复数的虚数部分 格式 Y = imag(Z) %返回输入参量Z的每一个分量的虚数部分。

例 >>f=9+7i; >>z= imag(f)

第二章 MATLAB程序设计基础
实战10:函数 conj
功能 复数的共轭值 格式 ZC = conj(Z) %返回参量Z的每一个分量的共轭复数: %conj(Z) = 虚部系数互为相反数, 如果两复数的实部相等,real(Z) - i*imag(Z) 例 那么, 这两个复数叫做共轭复数. >>f=9+7i; >>z= conj(f) 共轭复数的乘积是一个实数.

提问:什么是复数的共轭值?

第二章 MATLAB程序设计基础
实战11:函数 sin
功能 正弦函数 格式 Y = sin(X) % 计算参量X(可以是向量、矩阵,元素可以是复数) % 中每一个角度分量的正弦值Y

***所有分量的角度单位为弧度值

第二章 MATLAB程序设计基 础

书例1-3 计算下式的结果,其中x=-3.5度, Y=6.7度. sin(|x|+|y|)
sin(|x|+|y|) cos(|x+y|)

cos(|x+y|)

>> x=pi/180*(-3.5);y=pi/180*6.7; >> z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y)))

第二章 MATLAB程序设计基础
实战12:函数 cos
功能 余弦函数 格式 Y = cos(X) % 计算参量X(可以是向量、矩阵,元素可以是复数) % 中每一个角度分量的余弦值Y

***所有分量的角度单位为弧度值

第二章 MATLAB程序设计基 础

书例1-3 计算下式的结果,其中x=-3.5度, Y=6.7度. sin(|x|+|y|)
sin(|x|+|y|) cos(|x+y|)

cos(|x+y|)

>> x=pi/180*(-3.5);y=pi/180*6.7; >> z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y)))

第二章 MATLAB程序设计基础
实战13:函数 asin
功能 反正弦函数 格式 Y = asin(X)

% 返回参量X(可以是向量、矩阵)中每一个 % 元素的反正弦函数值Y。 % 若X中有的分量处于[-1,1]之间, % 则Y = asin(X)对应的分量处于[-π/2,π/2], % 若X中有分量在区间[-1,1]之外, % 则Y= asin(X)对应的分量为复数。

第二章 MATLAB程序设计基础
实战13:函数 asin 例题: >> x=-1; >> z1=asin(x) >> x=-2; >> z2=asin(x)

//?

第二章 MATLAB程序设计基础
实战14:函数 acos
功能 反余弦函数 格式 Y = acos(X) %返回参量X(可以是向量、矩阵)中每一个 %元素的反余弦函数值Y。 %若X中有的分量处于[-1,1]之间, %则Y = acos(X)对应的分量处于[0,π]之间, %若X中有分量在区间[-1,1]之外, %则Y = acos(X)对应的分量为复数。

第二章 MATLAB程序设计基础
实战14:函数 acos 例题: >> x=-1; >> z1=acos(x) >> x=-2; //? >> z2=acos(x)

第二章 MATLAB程序设计基础
实战15:函数 tan
功能 正切函数 格式 Y = tan(X) %计算参量X %(可以是向量、矩阵,元素可以是复数) %中每一个角度分量的正切值Y, %所有角度分量的单位为弧度值。

第二章 MATLAB程序设计基础
实战15:函数 tan
特别地,我们要指出的是, tan(pi/2)和tan(-pi/2)并不是精确的值, 因为matlab中的pi仅仅是精确值π近似的 表示值而已。
例题: >> tan(pi/2)
>> x=-pi/2+0.01: 0.01:pi/2-0.01; >> plot(x,tan(x));grid on;

第二章 MATLAB程序设计基础
实战16:函数 atan
功能 反正切函数 格式 Y = atan(X) %返回参量X(可以是向量、矩阵)中每一个 %元素的反正切函数值Y。 %若X中有的分量为实数,则Y = atan(X)对应 %的分量处于[-π/2,π/2]之间。

例: >> atan(0)

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础
学生演练实例1 [12 ? 2 ? (7 ? 4)] ? 32 的算术运算结果。(2) 【例】求

第二章 MATLAB程序设计基础

学生演练实例2 【例】 求 sin(10)*e?0.3*4 的算术运算结果。(-0.0045 )
2

第二章 MATLAB程序设计基 础

学生演练实例3 【例】复数 z ? 3 ? 4i, z
1

2

? 1 ? 2i, z3 ? 2e

?
6

i



计算

z1 z2 z? z3

(0.3349 + 5.5801i)

第二章 MATLAB程序设计基础

学生演练实例4 【例】 求 y1 ? 2sin(0.3? ) 的算术运算结果。( 0.5000)
1? 5

第二章 MATLAB程序设计基础

学生演练实例5 【例】 求 y ? 2cos(0.3? ) 的算术运算结果。( 0.3633)
2

1? 5

第二章 MATLAB程序设计基础

学生演练实例n 继续补充一些演练实例。(增加难度)

课后任务

一、熟练使用常用函数(初等)。 二、理解应用题并转化为数学模型。

疑问

精度问题 有时候函数结果返回0而不是0.0000。 按理,0!=0.0000. 类似的问题还有: 在matlab中为什么sin(pi) != 0? 而cos(pi)却等于-1,而不是-1.0000? 而format bank Sin(0)=0.00, cos(pi) 等于-1.00?

解释一: MATLAB中的数字是默认按照双精度型 疑问 浮点数存储的,他们的区别可能有两种情况: 一、0代表符号值的0,是没有经过舍入的 精确值,而0.0000是浮点数,有舍入。 由于MATLAB中默认数据类型是浮点型, 所以在输入计算时两者是没有差别的。 二、在MATLAB的输出结果中同样是浮点数, 如果一个矩阵中各元素的数量级相差较大, 同时显示出来时有的元素会显示为0.0000, 如果你只单独显示这一个数,发现它只是很小 并不是0。

疑问
解释二: Sin是build-in函数,看不到源代码。 让sin(0)=0而让sin(pi)!=0,cos(pi)=-1等 完全由mathworks公司函数内部定义。

疑问
看如下的代码,分析: x=0; x=0; for n=1:82 for n=1:82 x=x+0.01 x=x+1 end end x==0.82 x==82

上机安排:人数<93
2院大班(02021001/2班10-11周金工实习)
02021001/2,02011001班+英语精英班+020110卓越计划班(75人)

周一16:00~18:40,实验大楼三层北 02011002/3/4班(73人) 周一19:00~21:40,实验大楼三层北 注意: 大班长尽快报精英班和卓越班名单给我; 8-9周每周补一次理论课。

上机安排:人数<93
7院大班(07011001/2/3/4班8-9周金工实习)
07011004,07021001/2班+精英班+2院部分学生 周三16:00~18:40,实验大楼三层北 07011001/2/3班 周三19:00~21:40,实验大楼三层北

关于上机说两句
实验课需要我们干什么? 一、实验课前的知识点预习。 二、准备实验课要演练的例题。 三、实验课后的总结。

第二章 MATLAB程序设计基础
? 第三节教学目标
1 一维数组创建和引用 2 二维数组创建和引用 3 特殊数组

第二章 MATLAB程序设计基础 一、一维数组的创建
建立方法一: 直接输入法 建立方法二: 冒号法 建立方法三: 特殊方法

第二章 MATLAB程序设计基础 一、一维数组的创建
建立方法一:直接输入法 >>A=[1 2 3 4] >>A=[1,2,3,4]

第二章 MATLAB程序设计基础 一、一维数组的创建
建立方法二:冒号法
调用格式:A=初始量:步长:终止量

第二章 MATLAB程序设计基础 一、一维数组的创建
建立方法二:冒号法
例题:建立数组A,其中A=[1,2,3,4,5] >> A=1:1:5 >> A=1:5

第二章 MATLAB程序设计基础 一、一维数组的创建
建立方法三: 特殊方法
调用格式: A=linspace(初始量,终止量,数组元素个数) B=logspace(初始量,终止量,数组元素个数)

第二章 MATLAB程序设计基础
例题:生成数组A,其中A=[1,2,3,4,5] >>A=linspace(1,5,5) >>A=linspace(1,5.5,5) >>A=linspace(1,5,5.5)

第二章 MATLAB程序设计基础

例题:生成数组B=logspace(0,2,5) >>B=logspace(0,2,5)

第二章 MATLAB程序设计基础
例题:生成数组B=logspace(1,pi,5) >>B=logspace(1,pi,5) 例题:生成数组B=logspace(1,3,1) >>B=logspace(1,3,1)

第二章 MATLAB程序设计基础 一、一维数组的创建

注意事项: logspace(y1,y2,N)表示在10^y1和10^y2之间插入 N-2个元素,组成一个含有N个元素的数组; 如果y2=pi,则表示在10^y1和pi之间插入N-2个元 素; 如果N<2,则返回10^y2。

第二章 MATLAB程序设计基础 二 一维数组的引用:

引用格式: arrayName(n);引用一维数组中的第n个元素 arrayName(n1:n2);引用一维数组中的第n1至n2个元 素 arrayName([n1 n2]);引用一维数组中的第n1和n2个 元素 arrayName(n1 n2);引用一维数组中的第n1和n2个元 素 (x)

第二章 MATLAB程序设计基础 二
例题:

一维数组的引用:
>>A=[1,2,3,4,5] >>A(3) >>A(1:3)

第二章 MATLAB程序设计基础 三 二维数组的创建
?直接输入法
?文件生成法(M文件、txt文件、excel文件、dat文件等)

第二章 MATLAB程序设计基础 三 二维数组的创建
例题 >> myArray=[1 2 3 4 5 6 ; 6 5 4 3 2 1 … 5,sqrt(25),10-5,0+5,abs(-5),5]

第二章 MATLAB程序设计基础 四 二维数组的引用:
引用格式:

arrayName(m,n);引用二维数组的第m行n列的元素 arrayName(m,:);引用二维数组的第m行的所有列元素 arrayName(:,n);引用二维数组的第n列的所有行元素 arrayName(m1:m2,n);引用二维数组的第n列中m1至m2行的元素 arrayName(m,n1:n2);引用二维数组的第m行中n1至n2列的元素 arrayName([m1 m2],n);引用二维数组的第n列中m1行和m2行的元素 arrayName(m,[n1 n2]);引用二维数组的第m行中n1列和n2列的元

第二章 MATLAB程序设计基础 四
例题:

二维数组的引用:
>>A=[1,2,3,4,5;6,7,8,9,10] >>A(1,:) >>A(:,3) >>A(2, 1:2) >>A(1:2,2)

第二章 MATLAB程序设计基础

数组相关的习题 (MATLAB演练)

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础

课后任务

一、熟练掌握创建数组。 二、熟练掌握引用数组。

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 调用格式: s=‘string’ name=[‘str1’ ’str2’ ’str3’]

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组
>> s1=['who' 'are' 'you']; >> s2=['I''m' 'Tin' 'Tin']; >> s3=[s1 s2]; >> m=size(s1); >> n=size(s2); >> k=size(s3);

第二章 MATLAB程序设计基础 五 特殊数组

(1)字符数组 * 字符串转换方式一 函数命令:char 调用格式:S=char(T) 表示将正整数矩阵转换成字符串矩阵S。

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 * 字符串转换方式一 >> T=[102 67 132 ; 50 95 78] >> S=char(T)

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 * 字符串转换方式二
函数命令:int2str, num2str 调用格式: int2str(A) num2str(A,k) num2str(A,format) 表示将数或矩阵转换成字符串或字符串矩阵。

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 * 字符串转换方式二
>> A=[1.2 6.7 3.2 ; 5.5 9.5 7.8]; >> B1=int2str(A); >> B2=num2str(A,0); (?0) >> B3=num2str(A,'%10.3f'); >> B1+B2; B2+B3; B1+B3;

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 * 字符串转换方式三 函数命令:eval,str2num 调用格式: eval(S) str2num(S) 表示将字符串S转化为数值。

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 * 字符串转换方式三
>> a=[1 2]; w=[1 3]; x=[1 2]; >> S= ‘a.*sin(w.*x)’ >> val=eval(S); >> v2=subs(S);(?)

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 * 字符串转换方式三
>>v1=str2num(S); (?) >>str2num('3.14159e0') >>str2num(['1 2';'3 4']) >>ans.*3

第二章 MATLAB程序设计基础 五 特殊数组

(1)字符数组 *字符串比较 函数命令:strcmp 调用格式:strcmp(str1,str2) 表示将两个字符串进行比较,相等时返 回逻辑值为真。

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 *字符串比较
>> str1='bad'; >> str2='bad'; >> str3='dab'; >> strcmp(str1,str2); >> strcmp(str1,str3);

第二章 MATLAB程序设计基础 五 特殊数组

(1)字符数组 *字符串转内嵌函数 函数命令:inline 调用格式:inline(exr) inline(expr,arg1,arg2,…) 表示将字符串表达式转化为函数表达式。

第二章 MATLAB程序设计基础 五 特殊数组
(1)字符数组 *字符串转内嵌函数 >> f=inline('5*sin(x)+3*cos(y)','x','y')

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组

提问:结构体的概念?
如果让你统计全班同学基本信息, 你的数据怎么组织?

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组
* 结构数组: 是根据属性名组织起来的不同类型数据的集合。 * 结构数组通过属性名来引用。

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组 函数命令:struct 调用格式: sn=struct(‘filed1’,{},’filed2’,{},…)

第二章 MATLAB程序设计基础 五 特殊数组

(2)结构数组 例题:结构数组student有name和age两个属性。 两组数据: (liu,20);(Wang,21)。并 求student(1),student(2),student (2).name。

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组
>> student=struct('name',{'Liu','Wang'},'Age',{'20','21'}); >> student(1) >> student(2) >> student(2).name

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组 如果想新增加域field怎么办? 如果想给已有的域filed设置新的值怎么办?

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组
例:建立学生档案结构体,并计算每个学生的总成绩。(page96) 学号(number):数值型 姓名(name):字符型 身高(height):数值型 英语考试成绩(English):数值型 数学考试成绩(Math):数值型 物理考试成绩(Physics):数值型

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组
stud(1).number=input('please input number:'); stud(1).math=input('please input math:'); stud(1).physics=input('please input physics:'); stud(1).english=input('please input english:'); stud(1).total=stud(1).math+stud(1).physics+stud(1).english;

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组
>> n=input('please input n:'); >> for i=1:n stud(i).number=input('please input number:'); stud(i).math=input('please input math:'); stud(i).physics=input('please input physics:'); stud(i).english=input('please input english:'); stud(i).total=stud(i).math+stud(i).physics+stud(i).english; end

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组 * 三个相关的函数命令: fieldnames,size,rmfield, getfiled, setfield

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组

>> stud=setfield(stud,{1,1},'math','100') >> str1=getfield(stud,{1,1},'math')

>> fieldnames(stud) >> size(stud) >> rmfield(stud,'number')

第二章 MATLAB程序设计基础 五 特殊数组
(2)结构数组 ? 结构数组的嵌套

例题(page98):建立嵌套的结构数组。 >>a=struct('name','Mike','number','1000','score',struct('ma h','90','english','89','physics','97')); >> a >> a(1).number >> a(1).score

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组

提问: 普通数组元素之间有什么关联? 结构数组元素之间有什么关联? 其特殊性在哪里? 还有没有更特殊的可能性?

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组 函数命令:cell

细胞数组通常用{}创建,数据通过数组下标引用。

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组
>> B=cell(5,3); >> B(1,1)={[1 4 3; 0 5 8; 7 2 9]}; >> B(1,2)={'Anne cat'}; >> B(2,1)={3+7i}; >> B(2,2)={0:pi/10:pi}; >> B{3,1}=[3 4 2;9 7 6;8 5 1]; >> B{3,2}='Anne Smith'; >> B{4,1}=3+7i; >> B{4,2}=-pi:pi/10:pi;

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组
* celldisp和cellplot方法 >> B(1,1)={[1 4 3; 0 5 8; 7 2 9]}; >> B(1,2)={'Anne cat'}; >> B(2,1)={3+7i}; >> B(2,2)={0:pi/10:pi}; >> B >> celldisp(B) >> cellplot(B)

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组

*引用细胞数组元素: >> C=B{1,1} >> C=B(1,1) >> D=B{1,1}(2,2)

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组 *细胞数组的更新: >> B(3,1)='No.1'; (?) >> B{3,2}='No.2'; >> B{3,3}='No.3'; >> B >> M=B(1:3,1:2)

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组

*细胞数组的删除: >> B(:,3)=[] (?) >> B{2,3}=[] (?) 两次操作的区别? >> B{2,2}(3)=0

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组

*细胞数组中reshape的使用: >> A=cell(3,4) >> size(A) >> B=reshape(A,6,2) >> size(B)

第二章 MATLAB程序设计基础 五 特殊数组
(3)细胞数组
细胞数组和数值数组的转换 例题:将二维细胞数组F转换为三维数值数据。

>> F{1,1}=[1 2;3 4]; >> F{1,2}=[-1 0; 0 1]; 第二章 MATLAB程序设计基础 >> F{2,1}=[7 8;4 1]; >> F{2,2}=[4i 3+2i;1-8i 5]; 一、矩阵 >> for k=1:4 8 特殊数组 for i=1:2 for j=1:2 (2)细胞数组 NUM(i,j,k)=F{k}(i,j); end end end >> F >> NUM

第二章 MATLAB程序设计基础 五 特殊数组
(4)结构细胞数组
将结构数组放入细胞数组中,可组成结构细胞数组。

第二章 MATLAB程序设计基础 五 特殊数组
(4)结构细胞数组
>> c_str=cell(1,2); >> c_str{1}.label='12/2/94; 12/5/94'; >> c_str{1}.test=[47 52 55 48; 17 22 35 11]; >> c_str{2}.xdata=[-0.003 0.41 1.98 2.12 17.11]; >> c_str{2}.ydata=[-3 5 18 0 9]; >> c_str{2}.zdata=[0.6 0.8 1 2.2 3.4]; >> c_str{1}(1).test(2,2)

课后任务
一、掌握数组的创建。 二、掌握数组的引用。 三、掌握特殊数组的创建和引用。 四、掌握数组的其他相关操作。

第二章 MATLAB程序设计基础
? 第四节教学目标
? MATLAB的运算符(算术、关系、逻辑)

第二章 MATLAB程序设计基础
一、算术运算符
算术运算符 +、- 表示算术加法和减法 *、/ 表示算术乘法和除法 \ 表示左除 ^ 表示乘方 .* 表示点乘 .\ 表示点左除 ./ 表示点右除 .^ 表示点乘方

第二章 MATLAB程序设计基础
一、算术运算符 优先级
算术运算符优先级最高, 关系运算符次之, 而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整运算过程。

第二章 MATLAB程序设计基础
一、算术运算符

例题: a=5,b=6 ,求解以下运算结果。 >>a+b;a-b; >>a*b; >>a/b;a\b; >>a^b

第二章 MATLAB程序设计基础
一、算术运算符 例题: a=[1 3 5],b=[2 4 6] ,求解以下运算结果。 >>a+b;a-b; >>a*b; a^b? >>a/b;a\b; ? >>a.*b; >>a./b; a.\b; >>a.^b

第二章 MATLAB程序设计基础
二、关系运算符 ?< 表示小于 ?<= 表示小于或等于 ?> 表示大于 ?>= 表示大于或等于 ?== 表示等于 ?~= 表示不等于

第二章 MATLAB程序设计基础

例题:已知二维数组A=[1 2;2 3],求A中等于2的元素个数n。 >> A=[1 2;2 3]; >> B=A==2; >> n=sum(sum(B));

第二章 MATLAB程序设计基础

例题总结: 单个数比较,一维数组比较,二维数组比较。 各种关系运算符比较。

第二章 MATLAB程序设计基础
三、逻辑运算符 ?& 逻辑与(and),表示两个数组的对应元素 都是1,结果为1,否则为0 ?| 逻辑或(or),表示对应元素只要有一个 是1,结果为1,否则为0 ?~ 非(not),表示与元素相反 ?xor 异或,表示对应元素不同,结果为1,否 则为0

第二章 MATLAB程序设计基础
例题:已知数组A=[0 1 0; 1 0 1]和B=[1 1 1;0 0 0], 求A&B,A|B,~A和xor(A,B)。

>> A=[0 1 0; 1 0 1];B=[1 1 1;0 0 0]; >> A&B; >> A|B; >> ~A; >> xor(A,B);

第二章 MATLAB程序设计基础
四、逻辑函数
all 查看数组的行或者列,每行或列的所有元素为1,结果为1 any 查看数组的行或者列,每行或列只要有一个元素为1,结果为1 exist 查看变量或者函数是否存在 find 找出非零元素的位置标识 isempty 判断矩阵是否为空矩阵 isequal 判断对象是否相等 isnumeric 判断对象是否为数值型 bitand 按位与 bitor 按位或 bitcmp 按位反码,共n位,n必须小于操作数的二进制位数 bitxor 按位异或 && 捷径与 || 捷径或

第二章 MATLAB程序设计基础
例题:A=[1 3 5],B=[1 3 5 ; 2 4 6], 求all(A),all(B),all(B2),any(A),any(B),any(B,2)。 >> A=[1 3 5];B=[1 3 5 ; 2 4 6]; >> all(A) >> all(B) >> all(B,2) >> any(A) >> any(B) >> any(B,2)

第二章 MATLAB程序设计基础
例题:观察以下函数的返回值: exist(‘work’),exist(‘myfile’),exist(‘C:\windows’)。 >> exist('work') >> exist('exam2_33') >> exist('C:\windows') 【说明】exist函数非常有用,其返回值为数字0~7, 分别表示不同的含义。

第二章 MATLAB程序设计基础
例题:数组A=[1 0 3;3 0 1], 求find(A),[m,n]=find(A),[m,n,v]=find(A)。 >> A=[1 0 3;3 0 1]; >> find(A) >> [m,n]=find(A) >> [m,n,v]=find(A)

第二章 MATLAB程序设计基础

例题: 已知二维数组A=[0.1 0.6]; B=[0.1 0.6]; C=['TinTin']; 求isequal(A, B),isequal(A, C),isnumeric(A), isnumeric(B), isnumeric(C)。 >> A=[0.1 0.6]; >> B=[0.1 0.6]; >> C=['TinTin']; >> isequal(A, B) >> isequal(A, C) >> isnumeric(A) >> isnumeric(B) >> isnumeric(C)

第二章 MATLAB程序设计基础

例题:已知A=7,B=3, 求bitand(A,B),bitor(A,B),bitxor(A,B)。 >> A=7;B=3; >> bitand(A,B) >> bitor(A,B) >> bitxor(A,B)

第二章 MATLAB程序设计基础

例题:执行下面的命令,观察运行结果。体会捷径与和捷径或。 %可以在m文件中设置断点以更好观察 >> mycmp=(exist(‘circle.m’)==2 ) && (circle(5)) >> a=2;b=3;mycmp=(b~=0) || (a/b>10)

课后任务

掌握算术、关系、逻辑运算符。

第二章 MATLAB程序设计基础
? 第五节教学目标
? ? ? ? ? MATLAB的三种控制结构 MATLAB的M文件(命令文件和函数文件) MATLAB函数 MATLAB函数调用和参数传递 MATLAB的调试

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构
按照程序设计的观点, 任何算法功能都可以通过 程序模块组成的三种基本程序结构的组合来实现: *顺序结构:程序按程序语句或模块在执行流中的 顺序逐个执行。 *选择结构:程序按设定的条件实现程序执行流的 多路分支。 *循环结构:程序按给定的条件重复地执行指定的 程序段或模块。

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 1 顺序结构
程序模块1

程序模块2

只需将程序语句顺序排列即可

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 2 选择结构 成立 不成立
条件
程序模块1 程序模块2

选择结构由两种语句结构实现: if语句 switch语句

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 2 选择结构

? if语句
if 表达式 else 程序模块1 程序模块2

end

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 2 选择结构

? if语句

if 表达式 程序模块 end

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 2 选择结构 if表达式1

? if语句

程序模块1 elseif 表达式2 程序模块2 … elseif 表达式n 程序模块n else 程序模块n+1 end

例题:将百分制的学生成绩转换为五级制的成绩输出。

clear 第二章 '); n=input('输入n= MATLAB程序设计基础 if n>=90 r='A' elseif n>=80 r='B' elseif n>=70 r='C' elseif n>=60 r='D' else r='E' end

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 2 选择结构

? switch语句

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 2 选择结构 switch 表达式

? switch语句

end

case 数值1 程序模块1; case 数值2 程序模块2; …… case 数值n 程序模块n; otherwise 程序模块n+1

例题: clear n=input('输入n= '); panduan= fix(n/10) switch panduan case {10,9} r='A' case 8 r='B' case 7 r='C' case 6 r='D' otherwise r='E' end

第二章 MATLAB程序设计基础 clear
n=input('输入n= '); switch fix(n/10) case {10,9} r='A' case 8 r='B' case 7 r='C' case 6 r='D' otherwise r='E' end

将百分制的学生成绩转换为五级制的成绩输出。

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 3 循环结构
条件
程序模块
不成立

成立

循环结构可以由两种语句结构实现: for语句 while语句

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 3 循环结构

? for语句
for 循环变量=起始值:步长:终止值 循环体 end

例:使用for结构计算1+2+3+?+100 第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构

clear sum=0; for i=1:1:100 sum=sum+i; end sum

第二章 MATLAB程序设计基础
一、MATLAB的三种控制结构 3 循环结构

? while语句

while表达式 循环体 end

例:使用while循环计算1+2+3+?+100 clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum
一、MATLAB的三种控制结构

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础
二、其他流程控制语句
1 break 和 continue语句
* break语句用于立即跳出含该break语句的循环语句。 * continue语句用于提前结束当前循环。

第二章 MATLAB程序设计基础
二、其他流程控制语句
1 break 和 continue语句
* break语句用于立即跳出含该break语句的循环语句。 for ii = 1:5; * continue语句用于提前结束当前循环。 if ii == 3; break; end fprintf('ii = %d \n', ii); end disp('End of loop!');

第二章 MATLAB程序设计基础
二、其他流程控制语句
1 break 和 continue语句

for ii = 1:5; * break语句用于立即跳出含该break语句的循环语句。 * continue语句用于提前结束当前循环。 if ii == 3; continue; end fprintf('ii = %d \n', ii); end disp('End of loop!');

第二章 MATLAB程序设计基础
二、其他流程控制语句
2 return语句

* 用于终止当前命令的执行。 在任何地方遇到return时程序立即终止。

第二章 MATLAB程序设计基础
二、其他流程控制语句
3 try-catch语句

* 用于实现异常处理机制。 * 需要检测的程序必须放在try语句块中执行。 * 异常由catch语句捕获并处理。

第二章 MATLAB程序设计基础
二、其他流程控制语句
3 try-catch语句

* 用于实现异常处理机制。 例题:try-catch应用实例。 * 需要检测的程序段必须放在try语句块中 clear; 执行。 N=input('please input N='); * 异常由catch语句捕获并处理。 A=magic(3); A_N=A(N,N)

第二章 MATLAB程序设计基础
二、其他流程控制语句
clear; * 用于实现异常处理机制。 N=input('please input N='); * 需要检测的程序段必须放在try语句块中 A=magic(3); try 执行。 * 异常由catch语句捕获并处理。 A_N=A(N,N) catch A_end=A(end,end) end

例题:try-catch应用实例。

3 try-catch语句

第二章 MATLAB程序设计基础
三、MATLAB的M文件
M文件——包含MATLAB代码的文件

* 命令文件(脚本文件) * 函数文件

第二章 MATLAB程序设计基础
三、MATLAB的M文件
M文件——包含MATLAB代码的文件

编程原则:

*百分号“%”后面的内容是程序的注释信息。 *clear命令用于清除变量,通常用于主程序开头。 *充分利用MATLAB提供的函数来进行运算。 *在语句后输入分号,使中间结果不显示在屏幕上。 *输入少量数据时,可以使用input命令; *大量的数据输入最好通过子程序完成,在主程序中只需要调用该子程序即可。 *尽量采用主程序调用子程序的方法,使主程序清晰易读,便于维护。 *充分利用调试功能对程序进行调试,有的时候隐含的逻辑错误更不容易发现,危害却更大。 *设置MATLAB的工作路径和当前工作目录,方便操作和运行程序。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
1 命令文件(脚本文件)

? MATLAB代码按顺序组成的命令序列。 ? 不接受输入参数和输出参数。 ? 与MATLAB工作空间共享变量空间。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
2 命令文件的调用方法

在MATLAB命令窗口直接输入命令文件的文件名即可。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
3 命令文件的重要提示

?命令文件最好保存在当前目录下。 ?命令文件的文件名不要与其他函数/文件重名。 ?命令文件的文件名不要与变量重名。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
4 函数文件

?定义一个函数,需要制定输入参数和输出参数。 ?函数文件具有独立的内部变量空间。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
5 函数文件的调用

?输入函数文件的文件名并代入指定的实际参数即可。 ?MATLAB支持函数的嵌套调用和递归调用。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
6 函数文件的格式 函数文件的格式一般包含如下几个部分:

第二章 MATLAB程序设计基础
三、MATLAB的M文件
7 函数文件的重要提示

? ? ? ?

输出参数多于一个时,应使用中括号; 输入参数多于一个时用逗号隔开; 函数名与所存的m文件名应同名; 函数体中可使用错误提示信息:warning(‘message’)。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
8 函数文件与命令文件的区别

? ? ? ?

函数文件用function关键字定义,命令文件则不用; 函数文件可以传递参数,而命令文件不能传递参数; 函数文件中定义和使用的是局部变量,只在函数内有效。 命令文件中的变量都是全局变量,退出命令文件后仍然有效。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
9 函数文件与命令文件的创建

命令文件的创建基本步骤如下: * 打开MATLAB的M文件编辑器或任何一个文本编辑器; * 写入MATLAB的命令代码; * 保存文件名为filename.m即完成了命令文件的创建。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
9 函数文件与命令文件的创建

函数文件的创建基本步骤如下: * 打开MATLAB的M文件编辑器或任何一个文本编辑器; * 写入MATLAB的代码,注意第一行必须用function关键字,并定义函数四要素 * 保存文件名为funcname.m,即完成了命令文件的创建。

注意,文件名与函数名应同名,最好将M文件放置在MATLAB搜索路径下。

第二章 MATLAB程序设计基础
三、MATLAB的M文件
例题: %创建命令文件exam2_47_mymfile.m %在M文件编辑器中,点击“New Script”图标, %在弹出的代码页中编写代码: a=1;b=2;c=3; A=[1:5;linspace(1,2,5);logspace(1,2,5)]; a+b+c A+A

第二章 MATLAB程序设计基础
三、MATLAB的M文件

例题: %创建函数文件exam2_47_myffile.m %在M文件编辑器中, %点击菜单“New”的“function”选项,在弹出的代码页中编写代 function [ y] = exam2_47_myffile ( x) % the first M function file y=x; end

课后任务
一、掌握三种程序控制结构。 二、熟悉命令文件和函数文件。 三、熟练创建命令文件和函数文件。

第二章 MATLAB程序设计基础
四、函数相关知识

? ? ? ? ?

匿名函数 主函数和子函数 私有函数 嵌套函数 重载函数

第二章 MATLAB程序设计基础
四、函数相关知识
1 匿名函数 ? 通常只由一句很简单的声明语句组成。 ? 匿名函数也可以接受多个输入和输出函数。 ? 匿名函数的优点是不需要维护一个函数文件。 【调用格式】 fhandle=@(arglist)expr

第二章 MATLAB程序设计基础
四、函数相关知识
1 匿名函数

例题:创建匿名函数myfuncHandle,输入参数为x, 函数完成计算“x^2+2*x+1”。 >> myfuncHandle=@(x)(x^2+2*x+1) %创建一个匿名函数 >> myfuncHandle(10)

第二章 MATLAB程序设计基础
四、函数相关知识

2 主函数和子函数 在一个单个的m文件中我们可以定义多个函数。 如果多个函数出现在一个文件中,那么第一个定义 的(最好与m文件同名的)函数为主函数,其下面 定义的的函数称为子函数。 注意: 子函数只能被同一文件中的函数调用。 子函数不能够由其他文件中的函数调用。

第二章 MATLAB程序设计基础
四、函数相关知识

2 主函数和子函数 在一个单个的m文件中我们可以定义多个函数。 mainFunc.m 如果多个函数出现在一个文件中,那么第一个定义 function y = mainFunc(x) 的函数为主函数,其下面定义的的函数称为子函数 %main Function. y=x*subFunc(x); 注意: 子函数只能被同一文件中的函数调用。 子函数不能够由其他文件中的函数调用。 % Subfunction function u = subFunc(w) u=w/2; %

第二章 MATLAB程序设计基础
四、函数相关知识

2 主函数和子函数 在一个单个的m文件中我们可以定义多个函数。 %myfunc.m function y = myf(x) 如果多个函数出现在一个文件中,那么第一个定义 y=x; 的函数为主函数,其下面定义的的函数称为子函数
end function y = myfunc(x) 注意: 子函数只能被同一文件中的函数调用。 y=10*x; 子函数不能够由其他文件中的函数调用。 End % >>myfunc(1) ans=1 or ans=10 ?

第二章 MATLAB程序设计基础
四、函数相关知识
3 私有函数 指存放在private子目录中的函数。 注意: 私有函数只能由其父目录中的函数调用; 在函数调用时优先于其他路径上的函数。 调用次序: 子函数->私有函数->搜索路径中的函数。

第二章 MATLAB程序设计基础
四、函数相关知识
3 私有函数 Private Directories 指存放在private子目录中的函数。 注意: 私有函数只能尤其父目录中的函数调用; You can create your own private directories 在函数调用时优先于其他路径上的函数。 simply by creating subdirectories called private using the standard procedures for creating 调用次序: 子函数->私有函数->搜索路径中的函数。 directories or folders on your computer.

Do not place these private directories on your path.

第二章 MATLAB程序设计基础
四、函数相关知识
4 嵌套函数

一个函数定义的内部可以定义一个或多个函数, 这种定义在其他函数内部的函数就称为嵌套函数。

第二章 MATLAB程序设计基础
四、函数相关知识
4 嵌套函数
【一般格式】 function x=funcA(a,b) … function y=funcA1(c) … function z= funcA11(d,e) … end … function w=funcA12(f) … end … end … end

第二章 MATLAB程序设计基础
四、函数相关知识
5 重载函数
经常用在处理功能类似但参数类型或者参数个数不同的函数中。

* 重载函数通常放置在不同的文件下; * 通常文件夹名称以符号“@”开头; * 后跟一个代表MATLAB数据类型的字符。
例如: “@double”目录下的重载函数的输入参数是双精度浮点型, 而“@int16”目录下的重载函数的输入参数是16位整型。

第二章 MATLAB程序设计基础
四、函数相关知识
6 函数的调用

调用顺序: * 变量。 * 子函数 * 私有函数 * 类的构造函数 * 重载函数 * 当前路径上的函数 * 搜索其他路径

第二章 MATLAB程序设计基础
四、函数相关知识
6 函数的调用

调用语法:

funcname 参数1 参数2 … 参数n output=funcname(参数1,参数2,…,参数n) [out1,out2,…,outn]=funcname(参数1,参数2,…,参数n)

第二章 MATLAB程序设计基础
四、函数相关知识
7 函数的参数传递

按值传递机制

第二章 MATLAB程序设计基础
四、函数相关知识
7 函数的参数传递

按值传递机制:当一个函数调用发生时, MATLAB 将会复制实参生成一个副本,然后 把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数,但 它并没有影响到调用者的原值。 防止了因函数修改变量而导致的严重错误。

第二章 MATLAB程序设计基础
四、函数相关知识
7 函数的参数传递
按值传递机制:当一个函数调用发生时,MATLAB 将会复制 实参生成一个副本,然后把它们传递给函数。这次复制是非 sample.m 常重要的,因为它意味着虽然函数修改了输入参数,但它并 function out = sample(a, b) 没有影响到调用者的原值。 fprintf('In Sample,before compute: a = %f, b = %f \n',a,b);

a = b+ 2*a; b = a 防止了因函数修改变量而导致的意想不到的严重错误。 * b; out = a + b;
fprintf('In Sample,after compute: a = %f, b = %f\n',a,b);

第二章 MATLAB程序设计基础
四、函数相关知识
7 函数的参数传递
按值传递机制:当一个函数调用发生时,MATLAB 将会复制 实参生成一个副本,然后把它们传递给函数。这次复制是非 以下是命令行用来调用sample函数: 常重要的,因为它意味着虽然函数修改了输入参数,但它并 a 没有影响到调用者的原值。 = 2; b = 6;

fprintf('Before sample: a = %f, b = %f\n', a, b); out = sample(a, b); 防止了因函数修改变量而导致的意想不到的严重错误。 fprintf('After sample: a = %f, b = %f\n',a,b); fprintf('After sample: out = %f \n', out);

第二章 MATLAB程序设计基础
四、函数相关知识
8 函数的参数可调性 MATLAB在函数调用上有一个特色,函数所传递 参数数目的可调性,即

传递的参数的个数可以任意。

第二章 MATLAB程序设计基础
四、函数相关知识
8 函数的参数可调性

MATLAB提供了两对永久变量: nargin和varargin:用于检查被调用函 数的输入参数数目,检查函数体内的被调 用时的输入参数的值。 nargout和varargout:用于检查被调用 函数的输出参数的个数和每个输出参数 的值。

第二章 MATLAB程序设计基础
四、函数相关知识
8 函数的参数可调性

funcCanshu.m MATLAB提供了两对永久变量: function [y]=funcCanshu(x) nargin和varargin:用于检查被调用函 if nargin==0 数的输入参数数目,检查函数体内的被调 y=0; 用时的输入参数的值。 end nargout和varargout:用于检查被调用 if nargin==1 函数的输出参数的个数和每个输出参数 y=1; 的值。 end

第二章 MATLAB程序设计基础
四、函数相关知识 调试: funcCanshu.m function [y]=funcCanshu(x) if nargin==0 y=0; end if nargin==1 y=1; end
9 M文件的调试实例

第二章 MATLAB程序设计基础
一个实例: 画圆。 Circle.m
>>circle(5) >>circle(4, ‘r’) >>s1=circle(6) >>s2=circle(8,‘y’)

第二章 MATLAB程序设计 基础

第二章 MATLAB程序设计基 础

第二章 MATLAB程序设计基础
编程基础小结: 1. 三种控制结构。 2.Break和 Continue;return;try-catch。 3.匿名函数;主函数和子函数;私有函数; 重载函数;函数调用;函数参数传递; 函数参数的可调性。 4. 调试函数。

课后任务
1 熟练掌握MATLAB的三种控制结构。 2 了解函数相关深入知识 3 学会m文件的简单调试步骤

第三章 MATLAB的数值运算
* 教学目标
介绍两种数值运算的概念和使用 (矩阵和多项式)

* 学习要求
掌握矩阵和多项式的构造和运算方法。

第三章 MATLAB的数值运算
一、矩阵

矩阵是什么?

第三章 MATLAB的数值运算
一、矩阵
1 矩阵是线性代数的基本运算单元。 2 矩阵含有M行N列数值。 3 矩阵中的元素可以是实数或复数。 4 矩阵相关的基本运算:加,减,内积, 逆矩阵,转置,线性方程式,特征值, 特征向量,矩阵分解。

第三章 MATLAB的数值运算
一、矩阵
1 矩阵的分类 在MATLAB语言中,矩阵主要分为: (1)数值矩阵(实数和复数) (2)符号矩阵 (3)特殊矩阵

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

方法一:由命令窗口直接输入。输入规则: ? 同一行中不同元素用逗号或者空格符来分隔;

? 空格个数不限; ? 不同行用分号分隔或者分行输入; ? 所有元素置于一对方括号之内; ? 数据元素可以是表达式,MATLAB自动计算结果。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

例:输入矩阵A,B的值。
>> A=[1 2 3 4;5,6,7,8 9,10,11,12;13 14 15 16] >> B=[1,sqrt(25),9,13 2 6 10 7*2 3+sin(pi),7,11,15 4, abs(-8),12,16]

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

方法二:由m文件生成,规则: ? 具体定义矩阵的规则见方法一。

? m文件中的变量名称与文件名不能相同。 否则会出现变量名与文件名的混乱。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造
A=[1 2 3 4;5,6,7,8 9,10,11,12;13 14 15 16] B=[1,sqrt(25),9,13 2 6 10 7*2 3+sin(pi),7,11,15 4, abs(-8),12,16]

例题: 由m文件输入矩阵的值。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

方法三:由文本文件生成,规则: ? 建立txt文件,直接用load调用此文件。

? txt文件中不含变量名称,文件名即为矩阵变量名。 ? 每行数值个数必须相等。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

例题: 由文本文件输入矩阵的值。

>> load matrixAandB.txt

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

请问:如何从excel中读取所需要的数据? * excel读取函数 xlsread * dat 读取函数csvread 在实验课上详细演示这两个命令。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

请问:如何从excel中读取所需要的数据? * excel读取函数 xlsread * text 读取函数csvread 请在实验课上尝试解决这个问题。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (1)实数数值矩阵的构造

请问:如何从excel中读取所需要的数据? * excel读取函数 xlsread * text 读取函数csvread 请在实验课上尝试解决这个问题。

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (2)复数数值矩阵的构造
构造方法同实数数值矩阵; 将若干元素换成复数即可。 例如: >> A=[1 2 3 4;5,6,7,8; 1+2i,3+4i,2-8i,9-7i;]

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (3)符号矩阵的构造
构造方法同实数数值矩阵; 将若干元素换成符号即可。 例如: >> syms x y z; >> A=[x 2 3 4;5,y,7,8; 9 10 11 z]

第三章 MATLAB的数值运算
一、矩阵
2 矩阵的构造 (4)特殊矩阵的构造

构造方法比较特殊,另外介绍。

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (1)部分扩充 调用格式:D=[A;B C] A为原矩阵,B、C中包含要扩充的元素, D为扩充后的矩阵。

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (1)部分扩充 例如: 扩充一个矩阵

>> D=[A;A] >> D=[A;A A] >> D=[A;A;A]

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (2)部分删除 调用格式: A(:,n)=[] A(m,:)=[]
A(:,n)=[]表示删除矩阵A的第n列; A(m,:)=[]表示删除矩阵A的第m行。

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (2)部分删除 例如:删除矩阵A的第二列和第三行。

>> A(:,2)=[] >> A(3,:)=[]

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (3)部分修改 调用格式: A(m,n)=a; A(m,:)=[a]; A(:,n)=[b];
A(m,n)=a表示修改矩阵A的第(m,n)元素为a; A(m,:)=[a]表示修改矩阵A的第m行元素为a; A(:,n)=[b]表示修改矩阵A中第n列的元素为b。

第三章 MATLAB的数值运算
一、矩阵

3 矩阵的修改 (3)部分修改 例如:修改矩阵A的第二列元素和第三行元素。

>> A(:,2)=[1] >> A(3,:)=[2]

A(:,2)=[1;3;7]

提问: 如果改的是不同的值怎么办?

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (4)结构改变—左右翻转 函数命令:fliplr 调用格式:fliplr(A)
fliplr(A)表示矩阵A行数不变,其元素左右翻转。

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (4)结构改变—左右翻转 例如:左右翻转矩阵A元素。

>>fliplr(A)

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (5)结构改变—上下翻转 函数命令:flipud 调用格式:flipud(A)
flipud(A)表示矩阵A行数不变,其元素上下翻转。

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (5)结构改变—上下翻转 例如:上下翻转矩阵A元素。

>>flipud(A)

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (6)结构改变—逆时针旋转 函数命令:rot90 调用格式:rot90(A) rot90(A,k)
rot90(A,k)表示矩阵A元素逆时针翻转k个90度。

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (6)结构改变—逆时针旋转 例如:逆时针旋转矩阵A元素。

>>rot90(A,2) >>rot90(A,-2)

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (6)结构改变—按指定维数翻转矩阵 函数命令:flipdim 调用格式: flipdim(A,dim) 其中:flipdim(A,1)=flipud(A) flipdim(A,2)=fliplr(A) ?Flipdim(A,n)

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (7)结构改变—平铺矩阵 函数命令:repmat 调用格式: repmat(A,m,n) repmat(A,[m,n])

第三章 MATLAB的数值运算
一、矩阵
3 矩阵的修改 (7)结构改变—平铺矩阵

>>repmat(magic(3),2,1) 提问:repmat(A,m,n)中A是一个数a时, 表示什么?

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维 (1): 调用格式: B(:)=A(:)

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维

提问:B=A(:)表示什么?

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维

提问:B=A(:)表示什么?

表示将矩阵A中的所有元素按列顺序合并成为一个向量。

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维 (1): 例如:A=[1 2 5 4; 6 7 0 1]

B=ones(4,2) B(:)=A(:)

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维 (1):

讨论几个问题: 1 对B矩阵的维度有何要求? 2 对B矩阵的元素值有何要求? 2 如何变维?

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维 (2)reshape 调用格式: B=reshape(A,m,n)
注意:使用reshape时,B中元素个数与A中相同!

第三章 MATLAB的数值运算
一、矩阵
4 矩阵的变维 (2)reshape 例如:已知A=[1:8],用矩阵A元素构成2×4维 的矩阵B。

>> A=[1:8] >> B=reshape(A,2,4) >> B=reshape(A,4,2)

第三章 MATLAB的数值运算

例题:

第三章 MATLAB的数值运算

课后任务: 1 熟悉如何构造矩阵。 2 熟悉矩阵的修改和变维。

第三章 MATLAB的数值运算
* 教学目标
1 介绍矩阵元素的变换技术 2 介绍特殊矩阵的生成方法

* 学习要求

1 掌握矩阵元素的变换技术。 2 掌握特殊矩阵的生成方法。

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换
(1)对由小数构成的矩阵A取整数 函数命令:floor ceil round fix

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换

(1)对由小数构成的矩阵A取整数 调用格式:floor(A):取不足整数。 ceil(A):取过剩整数。 round(A):四舍五入取整数。 fix(A):按离0近的方向取整数

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换
(1)对由小数构成的矩阵A取整数 例如: 若A=3*rand(2), 求B1=floor(A),B2=ceil(A), B3=round(A),B4=fix(A)

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换
(1)对由小数构成的矩阵A取整数 >> A=3*rand(2) >> B1=floor(A) >> B2=ceil(A) >> B3=round(A) >> B4=fix(A)

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换
(2)矩阵的有理数形式 函数命令:rat 调用格式:[n,d]=rat(A) 将矩阵A近似表示为两个整数矩阵相除。 (A=n./d)

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换
(2)矩阵的有理数形式 例如: 若A=rand(2),求rat(A). >> A=rand(2) >> [n,d]=rat(A)

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换
(3)矩阵元素的余数 函数命令:rem 调用格式:B=rem(A,x)
矩阵A处以模数x后的余数。

第三章 MATLAB的数值运算 一、矩阵 5 矩阵元素的数据变换

(3)矩阵元素的余数 例如: 若A=rand(2),求矩阵A除以模数2后的矩阵B。 >> A=rand(2) >> B=rem(A,2) >> B=rem(A,0.2)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(1)空矩阵 函数命令:[] 调用格式:B=[]

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(2)单位矩阵 函数命令:eye 调用格式:
B=eye(n): 生成n×n单位阵 B=eye(m,n):生成m×n单位阵 B=eye(size(A)):生成与A维度相同的单位阵

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(2)单位矩阵 例题: 若A=[1,2,3;2,3,4],求B=eye(size(A)) >> A=[1,2,3;2 3 4] >> B=eye(size(A)) >> B=eye(5,7) >> B=eye(5)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(3)全零矩阵 函数命令:zeros 调用格式:

B=zeros(n): 生成n×n零矩阵 B=zeros(m,n):生成m×n零矩阵 B=zeros(size(A)):生成与A维度相同的零矩阵

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵

(3)全零矩阵 例题: 若A=[1,2,3;2,3,4],求B=zeros(size(A) >> A=[1,2,3;2 3 4] >> B=zeros(size(A)) >> B=zeros(5,7) >> B=zeros(5)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(4)全1矩阵 函数命令:ones 调用格式:

B=ones(n): 生成n×n全1矩阵 B=ones(m,n):生成m×n全1矩阵 B=ones(size(A)):生成与A维度相同的全1矩阵

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(4)全1矩阵 例题: 若A=[1,2,3;2,3,4],求B=ones(size(A)) >> A=[1,2,3;2 3 4] >> B=ones(size(A)) >> B=ones(5,7) >> B=ones(5)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(5)随机矩阵(0~1) 函数命令:rand 调用格式:

B=rand:产生一个随机数 B=rand(n): 生成n×n随机矩阵 B=rand(m,n):生成m×n随机矩阵 B=rand(size(A)):生成与A维度相同的随机矩阵

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(5)随机矩阵(0~1) 例题: 若A=[1,2,3;2,3,4],求B=rand(size(A)) >> A=[1,2,3;2 3 4] >> B=rand(size(A)) >> B=rand(5,7) >> B=rand(5)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(5)随机矩阵(0~1)
>> m=10; >> n=15 >> B=m+(n-m)*rand(3)

例题: 生成区间[10,15]内均匀分布的3阶随机矩阵。

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(6)随机矩阵(0均值单位方差正态分布) 函数命令:randn 调用格式:

B=randn:产生一个随机数 B=randn(n): 生成n×n随机矩阵 B=randn(m,n):生成m×n随机矩阵 B=randn(size(A)):生成与A维度相同的随机矩阵

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵

(6)随机矩阵(0均值单位方差正态分布) 例题: 若A=[1,2,3;2,3,4],求B=randn(size(A) >> A=[1,2,3;2 3 4] >> B=randn(size(A)) >> B=randn(5,7) >> B=randn(5)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(6)随机矩阵(0均值单位方差正态分布)
例题: 生成均值为0.5,方差为0.05的3阶矩阵。

>> mu=0.5; >> sigma=0.05; >> B=mu+sqrt(sigma)*randn(3)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(7)魔方矩阵 函数命令:magic 调用格式:

B=magic(n): 生成n×n魔方矩阵

tip:魔方矩阵值行、列、正、反对角线之和相等 的矩阵。且n!=2.

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(7)魔方矩阵 例题: 求3阶魔方矩阵 >> B=magic(3)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
(8)稀疏矩阵 函数命令:sparse full 调用格式:

B=sparse(A): 转换A矩阵为稀疏矩阵 B=full(A): 转换A矩阵为完全矩阵

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵

(8)稀疏矩阵 例题: 将完全矩阵F=[0 0 3;1 0 0;0 5 0]转化成 稀疏矩阵S。
>> F=[0 0 3;1 0 0;0 5 0] >> S=sparse(F) >> F=full(S)

第三章 MATLAB的数值运算 一、矩阵 6 常用特殊矩阵
实验课考察:这几个函数生成什么矩阵? diag triu tril

小结: 第三章 MATLAB的数值运算

1.矩阵的构造;(三种方法) 2.矩阵的增删改;(扩充,删除,结构变换) 3.矩阵元素的变换;(取整,有理数,求模) 4.特殊矩阵的构造; (空矩阵,单位阵,全1,全0,魔方阵, 随机阵等)

一、矩阵

第三章 MATLAB的数值运算
课后任务: 1 熟悉如何变换矩阵的元素。 2 熟悉如何构造特殊矩阵。 3 熟悉数组的构造和引用。 4 熟悉结构/细胞数组的构造和引用。 5 熟悉字符串的相关知识。

第三章 MATLAB的数值运算
* 教学目标
1 介绍矩阵的运算。 2 介绍矩阵的相关常用函数。

* 学习要求

1 掌握矩阵的运算方法。 2 掌握矩阵的常用函数。

第三章 MATLAB的数值运算 二、矩阵的运算
1 矩阵的加减运算
运算符:+,运算规则:对应元素相加、减。

第三章 MATLAB的数值运算 二、矩阵的运算
1 矩阵的加减运算
例题:A=[1 2;3,4],B=[5 6;7 8], 求X1=A+B; X2=A-B; X3=A+3; X4=B-4。 >> A=[1,2;3,4] >> B=[5 6;7 8] >> X1=A+B >> X2=A-B >> X3=A+3 >> X4=B-4

第三章 MATLAB的数值运算 二、矩阵的运算
2 矩阵的乘法运算
运算符:
* :矩阵乘法

.* :矩阵对应元素相乘(数组运算)

第三章 MATLAB的数值运算 二、矩阵的运算
2 矩阵的乘法
例题:A=[1 2 3; 4,5,6],B=[5 6;7 8;9 10] 求X1=A*B; X2=A*2; X3=A.*B; X4=A.*2。 >> A=[1,2,3; 4 5 6] >> B=[5 6;7 8;9 10] >> X1=A*B;X1=B*A; >> X2=2*A >> X3=A.*B (?) >> X4=A.*2

第三章 MATLAB的数值运算 二、矩阵的运算
2 矩阵的乘法
例题: A=[1 2 3; -2 0 0;1 0 1;-1 2 -3],B=[-1 3;-2 2;2 1] 求A*B >> A=[1 2 3; -2 0 0;1 0 1;-1 2 -3],B=[-1 3;-2 2;2 1] >> A*B >> B*A (?)

第三章 MATLAB的数值运算 二、矩阵的运算
3 矩阵的除法运算
运算符:
\ / ./ .\ :矩阵左除 : 矩阵右除 :矩阵点右除(数组运算) : 矩阵点左除(数组运算)

第三章 MATLAB的数值运算 二、矩阵的运算
3 矩阵的除法运算

提示: x=A\B是方程A*x=B的解; x=B/A是方程x*A=B的解。 若A为非奇异矩阵,则A\B和B/A可如下获得: A\B=inv(A)*B B/A=B*inv(A)

第三章 MATLAB的数值运算 二、矩阵的运算
3 矩阵的除法
例题:A=[1 0 3; 4 13 6;7 4 9],B=[4;7;1] 求X1=A\B ; X2=B/A; X3=A./B >> A=[1 0 3; 4 13 6;7 4 9],B=[4;7;1] >> X1=A\B >> X2=B/A(?) >> X3=A./B(?) >> X4=A./2

第三章 MATLAB的数值运算
例如:哥哥弟弟年龄问题。
哥哥比弟弟大19岁,哥哥年龄是弟弟的3 倍还多1,问:哥哥和弟弟的年龄分别是多少?

第三章 MATLAB的数值运算
例如:哥哥弟弟年龄问题。
解答方法: g-3d=1; g-d=19; 用矩阵方式解答: >> A=[1,-3;1,-1],B=[1;19] >> X1=A\B >> X2=B/A(?)

第三章 MATLAB的数值运算 二、矩阵的运算
3 矩阵的除法
例题:求解线性方程组。

?2 x1 ? x2 ? 3 x3 ? 5 ? ?3x1 ? x2 ? 5 x3 ? 5 ?4 x ? x ? x ? 9 ? 1 2 3

第三章 MATLAB的数值运算 二、矩阵的运算
3 矩阵的除法 分析: 例题2-20:求解线性方程组。 A=[2 -1 3;3 1 -5;4 -1 1],B=[5;5;9] 解答: >> A=[2 -1 3;3 1 -5;4 -1 1],B=[5;5;9] >> X=A\B

一维向量的左除右除: 第三章 MATLAB的数值运算 A=[1 2 3], B=[2 4 6], C=[2 4 9] 求解A/B, A/C和A\B 二、矩阵的运算 解答: 矩阵的除法 3 >> A/B
ans = 0.5000 >> A/C ans = 0.3663 >> A\B ans = 0 0 0.6667

例题2-20:求解线性方程组。
% (x=sum(A.*B)/sum(B.^2))

0 0 0 0 1.3333 2.0000

第三章 MATLAB的数值运算 二、矩阵的运算
4 矩阵的乘方运算
运算符:
^ : A^p表示矩阵的乘方。

.^ : A.^B表示矩阵A的数量乘方。

第三章 MATLAB的数值运算 二、矩阵的运算
4 矩阵的乘方运算
^的运算规则:

A为方阵,p为>0的整数时,A^p表示A自乘p次;p为 <0的整数时,A^p表示A-1的|p|次方

第三章 MATLAB的数值运算 二、矩阵的运算
4 矩阵的乘方运算
例题:A=[1 0 3; 4 13 6;7 4 9] 求A^2 >> A=[1 0 3; 4 13 6;7 4 9] >> A^2

第三章 MATLAB的数值运算 二、矩阵的运算
4 矩阵的乘方运算

.^的运算规则:

(1)A.^p 表示矩阵中每个元素的p次乘方。 (2)维度相同的A、B矩阵求A.^B,表示矩阵 A中元素对矩阵B中的对应元素求幂。结果矩 阵与原矩阵维度相同。

第三章 MATLAB的数值运算 二、矩阵的运算
4 矩阵的乘方运算
例题:A=[1 0 3; 4 13 6;7 4 9] B=[1,2,3; 4,5,6; 7,8,9] 求X1=A.^2 X2=A.^B >> A=[1 0 3; 4 13 6;7 4 9] >> B=[1 2 3; 4 5 6;7 8 9] >> X1=A.^2 >> X2=A.^B

第三章 MATLAB的数值运算 二、矩阵的运算
5 矩阵的转置

运算符: ‘ 运算规则: (1)若矩阵A的元素为实数、则A’返回A的转置; (2)若矩阵A为复数矩阵,则A’中的元素由A对应 元素的共轭复数构成。

第三章 MATLAB的数值运算 二、矩阵的运算
例题:A=[1 0 3; 4 13 6;7 4 9]; B=[1 2 3; 4 5 6;7 8 9+9i] 求X1=A’ X2=B’ >> A=[1 0 3; 4 13 6;7 4 9] >> B=[1 0 3; 4 13 6;7 4 9+9i] >> X1=A' >> X2=B'

5 矩阵的转置

第三章 MATLAB的数值运算 二、矩阵的运算
6 矩阵的逆
运算符: inv 调用格式:B=inv(A)

第三章 MATLAB的数值运算 二、矩阵的运算
6 矩阵的逆
例题: G=[1 2 0; 2 5 -1;4 10 -1] 求G的逆,并验证之。 >> G=[1 2 0; 2 5 -1;4 10 -1] >> X=inv(G) >> DW1=G*X >> DW2=X*G

第三章 MATLAB的数值运算 二、矩阵的运算
6 矩阵的逆
例题: 设矩阵A和B满足关系式AB=A+2B 其中,A=[4 2 3;1 1 0;-1 2 3] 求矩阵B。

第三章 MATLAB的数值运算 二、矩阵的运算
6 矩阵的逆
例题2-19(page36): 分析: 设矩阵A和B满足关系式AB=A+2B 1 AB=A+2B 2=〉(A-2E)B=A 其中,A=[4 3;1 1 0;-1 2 3] 求矩阵B。 2 所以,B=(A-2E)-1A

>> A=[4 2 3;1 1 0;-1 2 3] >> B=inv(A-2*eye(3))*A

第三章 MATLAB的数值运算 二、矩阵的运算
7 矩阵的特征值
运算符: eig 调用格式:eig(A)

第三章 MATLAB的数值运算 二、矩阵的运算
7 矩阵的特征值 例题:求矩阵A的特征值。其中 A=[1 0 0;0 2 0;0 0 3]。 >> A=[1 0 0;0 2 0; 0 0 3] >> eig(A)

第三章 MATLAB的数值运算 二、矩阵的运算
8 求矩阵的特征多项式
运算符: poly 调用格式:poly(A)

第三章 MATLAB的数值运算 二、矩阵的运算
8 求矩阵的特征多项式 例题: 求矩阵A的特征多项式。其中 A=[1 2 0;2 5 -1;4 10 -1]。 >> A=[1 2 0;2 5 -1;4 10 -1] >> poly(A)

第三章 MATLAB的数值运算 二、矩阵的运算
9 求矩阵的秩
运算符: rank 调用格式:rank(A)

第三章 MATLAB的数值运算 二、矩阵的运算
9 求矩阵的秩 例题: 求矩阵A的秩。其中 A=[1 2 3;4 5 6]。 >> A=[1 2 3;4 5 6] >> rank(A)

第三章 MATLAB的数值运算 二、矩阵的运算
10 求矩阵元素的个数
运算符: numel 调用格式:numel(A)

第三章 MATLAB的数值运算 二、矩阵的运算
10 求矩阵元素的个数 例题: 求矩阵A的个数。其中 A=[1 2 3;4 5 6]。 >> A=[1 2 3;4 5 6] >> numel(A)

第三章 MATLAB的数值运算 二、矩阵的运算
11 方阵的行列式
运算符: det 调用格式:det(A)

第三章 MATLAB的数值运算 二、矩阵的运算
11方阵的行列式 例题: 求方阵A的行列式的值。其中 A=[1 1 0; 0 0 2; 0 5 -1]。 >> A=[1 1 0; 0 0 2;0 5 -1] >> det(A)

第三章 MATLAB的数值运算 二、矩阵的运算
12 方阵的迹
运算符: trace 调用格式:trace(A)

第三章 MATLAB的数值运算 二、矩阵的运算
12 方阵的迹 例题: 求方阵A迹。其中 A=[1 1 0; 0 0 2; 0 5 -1]。 >> A=[1 1 0; 0 0 2;0 5 -1] >> trace(A)

第三章 MATLAB的数值运算 二、矩阵的运算
思考并在实验课上演练: rref函数? 矩阵的伴随矩阵?

第三章 MATLAB的数值运算 三、矩阵的关系运算和逻辑运算

1 关系运算符 ==,~=,>, >=, <, <= 主要用来对矩阵与数,矩阵与矩阵进行 比较,返回二者关系的,由数0和数1组 成的矩阵,0和1分别表示不满足和满足 指定关系。

第三章 MATLAB的数值运算 三、矩阵的关系运算和逻辑运算
1 关系运算符 >> A=[1 2 ;2 3 ] >> B=A==1 >> B=A==2 >> B=A==3 >> C=[2 2 ; 2 2 ] >> B=C==A

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算

2 逻辑运算符 & , | , ~, xor MATLAB中,所有非零数值均被认为真 零为假。 在判断结果中,判断为真输出1,判断为 假输出0。

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
2 逻辑运算符 >> A=[1 1 ; 0 1] >> b=0; >> B=[0 1 ;0 0 ] >> C1=A&b >> C2=A|b >> C3=xor(A,B)

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数

all:判断是否所有元素为非零值; any:判断是否存在一个元素为非零值; exist:查看变量或函数是否存在; find:找出向量或矩阵中非零元素的位置标识; isempty:判断矩阵是否为空矩阵; isequal: 判断几个对象是否相等; isnumeric:判断对象是否为数值型。

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> a=[1 3 5]; >> A=[1 2 3 ; 0 4 5 ]; >> B1=all(a); >> B2=all(A); >> B3=all(A,2);

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> a=[0 3 0]; >> A=[1 0 3;0 0 5]; >> B1=any(a); >> B2=any(A); >> B3=any(A,2);

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> a1=exist('work'); >> a2=exist('filtdes') >> a3=exist('c:\windows')

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> A=[1.2 0 3.5 ; 0 0 5.4]; >> k=find(A); >> [m,n]=find(A); >> [m,n,v]=find(A);

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> A=[0.34 0.6]; >> B=[0.34 0.6]; >> C=['who']; >> isequal(A, B); >> isequal(A, C);

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> A=[0.34 0.6]; >> B=[1+2i 0.6+3i]; >> C=['who']; >> isnumeric(A); >> isnumeric(B); >> isnumeric(C);

第三章 MATLAB的数值运算 三、矩阵的关系和逻辑运算
3 逻辑函数 >> A=[0.34 0.6]; >> B=[1+2i 0.6+3i]; >> C=['who']; >> isnumeric(A); >> isnumeric(B); >> isnumeric(C);

第三章 MATLAB的数值运算

课后任务: 1 演练矩阵的运算。 2 演练矩阵的常用函数。

第三章 MATLAB的数值运算
* 教学目标
介绍多项式运算的概念和使用

* 学习要求

1 掌握多项式的构造和运算方法。 2 能使用常用函数进行简单问题求解。

第三章 MATLAB的数值运算
一、什么是多项式?

第三章 MATLAB的数值运算
一、什么是多项式?

多项式: 形如 P(x) ? a0 xn ? a1xn-1 ? ... ? a n-1x ? a n 的式子。

第三章 MATLAB的数值运算
一、什么是多项式?

MATLAB中: 多项式用行向量表示: P=[a0 a1 … an-1 an]

第三章 MATLAB的数值运算
二、多项式的构造 1 直接输入法 A=[1 3 5 7 9 0 0]

第三章 MATLAB的数值运算
二、多项式的构造 2 使用poly方法 例题:已知向量A=[1 -34 -80 0 0] P(x)=(x-1)(x+34)(x+80)(x-0)(x-0) 用此向量构造一多项式并显示结果。

>> A=[1 -34 -80 0 0 ] >> poly(A)

第三章 MATLAB的数值运算
二、多项式的构造 3 使用poly2sym方法 例题 已知向量A=[1 -34 -80 0 0] P(x)=(x-1)(x+34)(x+80)(x-0)(x-0) 用此向量构造一多项式并显示结果。

>> A=[1 -34 -80 0 0 ] >> PA=poly(A) >>poly2sym(PA)

第三章 MATLAB的数值运算
二、多项式的运算 1 多项式的加减运算

运算符: + 注意事项:

(1)具有相同的阶次; (2)如果阶次不同,低阶的多项式必须用零填 补至高阶多项式的阶次。

第三章 MATLAB的数值运算

二、多项式的运算 1 多项式的加减运算 例题2-15:求两个多项式 a(x)=5x4 + 4x3+3X2+2x+1 ;b(x)=3x2+1的和。

>> a=[5 4 3 2 1]; >> b=[3 0 1] >> a+b >> c=a+[0; 0; b] >> c=a+[0 0 b]

第三章 MATLAB的数值运算
二、多项式的运算 2 多项式的乘法运算

调用函数: conv(a,b)

第三章 MATLAB的数值运算

二、多项式的运算 2 多项式的乘法运算 例题2-15:求两个多项式 a(x)=5x4 + 4x3+3X2+2x+1 ;b(x)=3x2+1的积。 >> a=[5 4 3 2 1]; >> b=[3 0 1] >> a*b >> c=a*[0; 0; b] >> c=a*[0 0 b] >> c=conv(a,b)

第三章 MATLAB的数值运算
二、多项式的运算 3 多项式的除法运算

调用函数: deconv(a,b) 调用格式: [div,rest]=deconv(a,b) div: 商多项式 rest: 余数多项式

第三章 MATLAB的数值运算

二、多项式的运算 3 多项式的除法运算 例题2-15:求两个多项式 a(x)=5x4 + 4x3+3X2+2x+1 ;b(x)=3x2+1的商。 >> a=[5 4 3 2 1]; >> b=[3 0 1] >> [div,rest]=deconv(a,b)

第三章 MATLAB的数值运算
二、多项式的运算 4 多项式的微分运算

调用函数: polyder 调用格式: B=polyder(A)

第三章 MATLAB的数值运算
二、多项式的运算 4 多项式的微分运算 例题2-16:求多项式 p(x)=2x4 -6x3+3X2+7 的微分。

>> p=[2 -6 3 0 7] >> q=polyder(p)

第三章 MATLAB的数值运算
二、多项式的运算 5 多项式求根

调用函数: roots 调用格式: X=roots(A)

第三章 MATLAB的数值运算
二、多项式的运算 5 多项式求根 例题2-17:求多项式 p(x)=2x4 -6x3+3X2+7 的根。

>> p=[2 -6 3 0 7] >> X=roots(p)

第三章 MATLAB的数值运算
二、多项式的运算 6 多项式求值

调用函数: polyval ,polyvalm 调用格式: B=polyval(A,a )
B=polyval(A,M)

第三章 MATLAB的数值运算
二、多项式的运算 6 多项式求值 例题:求多项式 p(x)=2x4 -6x3+3X2+7 当x=1时的值。

>> p=[2 -6 3 0 7] >> B=polyval (p,1)

第三章 MATLAB的数值运算

二、多项式的运算 6 多项式求值 例题:求多项式 p(x)=2x4 -6x3+3X2+7 当x=[1 2 ;3 4]时的值。

>> p=[2 -6 3 0 7] >> M=[1 2 ;3 4 ] >> B=polyvalm(p,M)

第三章 MATLAB的数值运算

二、多项式的运算 例题:将表达式(x-4)(x+5)(x2-6x+9)展开为多项 式,并求其对应的一元n次方程的根。

>> p=conv([1 -4],conv([1 5],[1 -6 9 ]))

>> px=poly2sym(p,'x') >> x=roots(p)

第三章 MATLAB的数值运算

二、多项式的运算 例题:已知一元四次方程对应的四个根为 -5, 4 ,3,3。求这个方程所对应的表达式原型。

>> x=[-5 4 3 3] >> p=poly(x) >> px=poly2sym(p,'x')

第三章 MATLAB的数值运算

课后任务: >> x=[-5 4 3 3] 1 演练多项式的运算。 >> p=poly(x) 2 演练多项式的常用函数。

二、多项式的运算 例题2-22:已知一元四次方程对应的四个根为-5 4 ,3,3。求这个方程所对应的表达式原型。

>> px=poly2sym(p,'x')

应用MATLAB解决高等代数问题
例:矩阵的初等变换与方程的MATLAB求解 1.交换矩阵中的两个行向量的位置; 2.用一个非零数乘以矩阵的某一行向量 3.把矩阵的某一个行向量乘以实数并加到矩阵 的另一行上

应用MATLAB解决高等代数问题

例:求解线性方程组 ?3x1 ? x2 ? 5 x3 ? 3 ? ? x1 ? x2 ? 2 x3 ? 1 ? x ? 2x ? x ? 2 2 3 ? 1

应用MATLAB解决高等代数问题

演练:线性代数方法用增广矩阵初等变换即消元 法过程

?3 ? 1 ?1 ? 1 A? ? ?1 ? 2 ?

3? ? 2 1 ? ? 1 2? ? 5

应用MATLAB解决高等代数问题
方法之一:初等变换法
A=[3 -1 5 3;1 -1 2 1;1 -2 -1 2] %输入矩阵的数据
A([1 3],:)=A([3 1],:) %交换第一行和第三行数据

A(2,:)=A(2,:)-A(1,:) %将第一行乘以-1加到第二行 A(3,:)=A(3,:)-3*A(1,:)%将第一行乘以-3加到第三行 A(3,:)=A(3,:)-5*A(2,:) %将第二行乘以-5加到第三行

format rat rref(A)

%分数数据格式 %化简矩阵

应用MATLAB解决高等代数问题
方法之二:Cramer法则
A=[3 -1 5;1 -1 2 ;1 -2 -1] %输入矩阵的数据 B=[3 1 2]’; S=[0 0 0]’; for i=1:3 C=A; C(:,i)=B; %输入线性方程组的常数项 %给解向量赋初值 %for循环 %将矩阵A赋给临时矩阵C %将常数项赋给矩阵C的第i列即求Ai %求xi

S(i)=det(C)/det(A); end format rat S

%数据格式说明为分数形式 %显示S

应用MATLAB解决高等代数问题
方法之三:利用矩阵的左除“\” A=[3 -1 5;1 -1 2 ;1 -2 -1] ; b=[3 1 2]‘; x=A\b x= 10/7 -1/7 -2/7

第三章 MATLAB的数值运算

补充矩阵相关习题: 习题1: 矩阵A维度6×5,代表六个学生,五门成绩, 求每门成绩均>90的学生。 【求解】 :

第三章 MATLAB的数值运算
补充习题: 习题2:
已知矩阵,试给出相应的命令, (1)将其全部偶数行提取出来,赋给B 矩阵; (2)将其全部奇数列提取出来,赋给C矩阵。 用8×8的魔方阵来验证你的算法。
【求解】
>> A=magic(8), B=A(2:2:end,:)

第三章 MATLAB的数值运算
补充习题:
习题3: 编写一个矩阵相加函数matadd(), 使其具体的调用格式为A=matadd(A1,A2, … ), 要求该函数能接受可变多个矩阵进行加法运算。
【求解】用varargin 变量来表示可变输入变量 function A=mat_add(varargin) A=0; for i=1:length(varargin), A=A+varargin{i}; end

第三章 MATLAB的数值运算

补充习题: 习题4:求出

第三章 MATLAB的数值运算

补充习题: 习题5(from线代书习题2-2): 设A=[1 1 1;1 1 -1;1 -1 1], B=[1 2 3;-1 -2 0; 0 1 1] 求3AB-2A以及A’B。

第三章 MATLAB的数值运算

补充习题: 习题6(from线代书习题2-8-4): 设A=[3 4;5 6],已知AX+E=A^2+X。 求X。

第三章 MATLAB的数值运算
补充习题: 习题7(from线代书习题2-10): 利用逆矩阵求解线性方程组。 3x1+2x2-x3=4 X1-x2+2x3=5 -2x1+x2-x3=-3

第三章 MATLAB的数值运算

补充习题: 习题8(from线代书习题2-11): 设A=[2 1 -1; -1 4 -1; 1 -1 2],B=[0 2 4;-4 2 6 若XA=B+X,求矩阵X。

第四章 MATLAB的符号运算
* 教学目标
介绍符号运算的概念和使用

* 学习要求
掌握使用符号运算解决符号推导、微积 分、方程等问题的方法。

第四章 MATLAB的符号运算
一、数值运算和符号运算
? 数值运算在运算前必须先对变量赋值, 再参加运算。

? 符号运算不需要对变量赋值就可运算, 运算结果以标准的符号形式表达。

第四章 MATLAB的符号运算
一、数值运算和符号运算

哥哥弟弟年龄问题。 解答方法: g-3d=1; g-d=19;

第四章 MATLAB的符号运算
一、数值运算和符号运算

哥哥弟弟年龄问题。
gegedidi.m:
clear; syms g d; [x,y]=solve('g-d=19','g-3*d=1','g','d')

?>>solve('g-d=19','g-3*d=1','g','d') ?>>[g,d]=solve('g-d=19','g-3*d=1','g','d')

第四章 MATLAB的符号运算
一、数值运算和符号运算
形如以下:
(1) sin(a*x+b*y) (2)a*x^2+b*x+c (3)1/(4+cos(t)) (4)4*x/y (5)2*a+b (6)2*i+4*j

第四章 MATLAB的符号运算
一、数值运算和符号运算
当我们做如下操作时: >> 4*x/y ??? Undefined function or variable 'x'.

第四章 MATLAB的符号运算
二、符号变量定义 调用命令: sym syms 调用格式: >> a=sym('a');b=sym('b'); c=sym('c'); >> syms a b c;

第四章 MATLAB的符号运算
二、符号变量定义 几种常见的典型错误命令:
>> x=sym x; >> x=sym 'x'; >> syms x,y,z;

第四章 MATLAB的符号运算
三、符号表达式的定义 调用命令: sym
调用格式: f=sym(‘符号表达式’) 定义符号表达式,并将它赋值给变量f。

第四章 MATLAB的符号运算
三、符号表达式的定义

建立符号表达式有以下2种方法: (1)用sym函数建立符号表达式。 >> f=sym('a*x^2+b*x+c'); (2) 使用已经定义的符号变量组成符号表达式。 >> syms x y a b c >> f=a*x^2+b*x+c (?)利用单引号来生成符号表达式。 >> f='a*x^2+b*x+c'

第四章 MATLAB的符号运算
三、符号表达式的定义

思考并提问: 1.Sym(‘’)和syms bla的区别 2. a=‘a’ 和 a=sym(‘a’)的区别?

第四章 MATLAB的符号运算
三、符号表达式的定义

形如:a*x^2+b*x+c 提问: 谁是自变量?

第四章 MATLAB的符号运算
三、符号表达式的定义 自变量的确定: 方法一:事先明确指定。 方法二:MATLAB自行默认确定。

第四章 MATLAB的符号运算
三、符号表达式的定义 MATLAB自变量确定原则: (1) x被视为默认的自变量。 (2)字母位置最接近x的小写字母; (。。。u,v,w,x,y,z。。。)

第四章 MATLAB的符号运算
三、符号表达式的定义 表3-1:默认自变量实例
(1) sin(a*x+b*y) (2)a*x^2+b*x+c (3)1/(4+cos(t)) (4)4*x/y (5)2*a+b (6)2*i+4*j

第四章 MATLAB的符号运算
三、符号表达式的定义 函数findsym帮助我们获取系统定义的自变量 格式:findsym(f); findsym(f,1) 例如:
f= sym('sin(a*x+b*y)'); f=sym('a*x^2+b*x+c'); f=sym('1/(4+cos(t))'); f=sym('4*x/y'); f=sym('2*a+b'); f=sym('2*i+4*j');

findsym(f) findsym(f,1) findsym(f,2) findsym(f,n)

第四章 MATLAB的符号运算
四、符号方程的定义

符号表达式和符号方程的区别: 符号表达式是由数字、函数和变量组成的代数式; 符号方程是由函数和等号组成的等式。

第四章 MATLAB的符号运算
四、符号方程的定义

调用命令: sym 调用格式: sym(‘符号方程式’) 例如: >> equation=sym('sin(x)+cos(x)=1')

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (1)符号的加减乘除幂次方运算 + - * / ^
例如: (a*x+b*y-c*z)/2*v*w^2

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (2)符号表达式的常用运算函数(page47)

+

-

*

/

^

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (2)符号表达式的加减乘除幂次方运算

例如: >> f1=sym('1/(a-b)'); >> f2=sym('2*a/(a+b)'); >> f3=sym('(a+1)*(b-1)*(a-b)');

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (2)符号表达式的加减乘除幂次方运算
例如: >>[n,d]=numden(f1+f2) >> p=sym('2*x^3+3*x^2+4'); >> sym2poly(p) >> x=[2,3,0,4]; >> poly2sym(x)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)
collect :合并同类项 expand:展开多项式 horner: 分解成嵌套形式 factor: 因式分解 simplify: 对表达式化简 simple: 化简为最简形式,表达式最少字符。

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)
例如: collect 合并同类项

>> f=sym('x^2*y+y*x-x^2-2*x'); >> collect(f) >> syms x y; >> collect(x^2*y+y*x-x^2-2*x) (找不同)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)
例如: collect 合并同类项 syms x y; collect((exp(x)+x)*(x+2)) collect((x+y)*(x^2+y^2+1), y) (找不同)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)
例如: expand展开多项式 >> f=sym(' a^3-1'); >> expand(f) >>expand((x-2)*(x-4)) >>expand(cos(x+y)) >>expand(exp((a+b)^2))

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4) 例如: horner分解成嵌套形式
>>horner(x^3-6*x^2+11*x-6)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4) 例如: factor: 因式分解
>>factor(x^3-6*x^2+11*x-6)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)
例如: simplify: 对表达式化简

>>simplify(x^3-6*x^2+11*x-6) >>simplify(sin(x)^2 + cos(x)^2) >>simplify(exp(c*log(sqrt(a+b)))) >>simplify((x^2+5*x+6)/(x+2)) >>simplify(sqrt(16))

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)
例如: simple化简为最简形式,表达式最少字符。 >>f=2*cos(x)^2-sin(x)^2; >>simple(f) >>[r,how]=simple(f)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)

f=sym('a*x^2+b*x+c') [r,how]=simple(f) r =a*x^2+b*x+c how = []

第四章 MATLAB的符号运算
五、符号运算 1 初等代数运算 (3)符号表达式化简(page48,表3-4)

help simple

第四章 MATLAB的符号运算
五、符号运算 2 再次扩充认识sym函数 功能:定义符号表达式; 或将输入参数转换为对应的符号表示, 或设定符号变量类型。 格式:sym(‘a’) ;
sym(A); sym(A, 'real'), sym(A, ‘unreal'), sym(A,flag) flag为f,r,e,d

第四章 MATLAB的符号运算
五、符号运算 2 sym函数 例如: >>s= sym('sin(x)^2+ cos(x)^2')
>>A=0.25 或者A=‘1/8’ 或者A=sym(‘1/8’) >>sym(A) >>sym(‘A’) (找不同)

第四章 MATLAB的符号运算
五、符号运算 2 sym函数

提问: Sym(‘sqrt(3)’) 和 sym(sqrt(3))区别是什么?

第四章 MATLAB的符号运算
五、符号运算 2 sym函数 例如: sym(1/3,'f') sym(1/3,'e') sym(1/3,'r') sym(1/3,'d')

第四章 MATLAB的符号运算
五、符号运算 2 sym函数 例如:
sym('x', 'real') sym('y', 'real') syms x y 'real' conj(x) sym('x', 'unreal') conj(x)
观察并回答: 结果为什么是这样?

第四章 MATLAB的符号运算
五、符号运算 3 求反函数 finverse 功能:求得符号函数的反函数。 格式:finverse(f) finverse(f,v) f: 符号表达式 v:自变量。

第四章 MATLAB的符号运算
五、符号运算 3 求反函数 >> syms x y >> finverse(1/tan(x))
>> f= x^2+y >> finverse(f,y) >> finverse(f)

(找不同)

第四章 MATLAB的符号运算
五、符号运算 4 求复合函数 compose 功能:求符号函数的复合函数。(page52) 格式:compose(f,g) compose(f,g,z) compose(f,g,x,z) compose(f,g,x,y,z)

第四章 MATLAB的符号运算
五、符号运算 4 求复合函数 compose
>>syms x y z t u; >>f = 1/(1 + x^2); g = sin(y); h = x^t; p = exp(-y/u); >>compose(f,g) >>compose(f,g,t) >>compose(h,g,x,z) >>compose(h,g,t,z) >>compose(h,p,x,y,z) >>compose(h,p,t,u,z)

第四章 MATLAB的符号运算

演练例题: 已知f=1/(1+x^2),g=sin(y),求复合函数 f(g(y)).

第四章 MATLAB的符号运算
解答: >>clear; >>syms x y; >>f=1/(1+x^2); >>g=sin(y); >>h=compose(f,g)

第四章 MATLAB的符号运算

演练例题: 已知 f(sin(x/2))=1+cos(x),求f(cos(x)). 并计算x= ? / 6 时函数的值。

第四章 MATLAB的符号运算
解答:

syms x t=finverse(sin(x/2)) f=1+cos(t) g=cos(x) compose(f,g) Subs(ans,pi/6)

第四章 MATLAB的符号运算
解答:
f(sin(x/2))=1+cos(x) => f(sin(x/2))=1+1-2*sin(x/2)^2 ? subs(f,t, sin(x/2)) (或subs(f, sin(x/2)) ,cos(x)) ? f(t)=2-2t^2 ? subs(f,t, cos(x)) => f(cos(x))=2-2*cos(x)^2 => subs(f, x , pi/6)

第四章 MATLAB的符号运算

类似的例题: 1.如果f(x-2)=x^2-2x+3;则f(x+2)=? 2.设f(x+1)=x^2+2x+3; 则f(sinx)=?

第四章 MATLAB的符号运算
五、符号运算 5 表达式替换 subs 功能:表达式替换。 格式:subs(s) subs(s,new) subs(s,old,new)

第四章 MATLAB的符号运算
五、符号运算 5 表达式替换 subs
>>a=5;c=10; >> y=sym('a*x^2+b*x+c') >>subs(y)

>> syms a b >> subs(a+b,a,4) >> subs(a+b,4) (?) >> subs(cos(a)+sin(b),{a,b},{sym('alpha'),2})

小结: 关于符号变量 定义: sym syms 第四章 MATLAB的符号运算
运算: + - * / ^ 化简: collect,expand,horner,factor, simplify,simple等 sym: finverse: compose: subs: digits: vpa:

课后任务
一、学会定义符号和符号表达式。 二、掌握符号表达式的基本运算。 三、掌握与符号表达式相关的常用函数。

第四章 MATLAB的符号运算
* 教学目标
介绍符号运算的概念和使用

* 学习要求
掌握使用符号运算解决符号推导、微积 分、方程等问题的方法。

第四章 MATLAB的符号运算
六、极限
函数: limit 调用格式: g=limit (f) g=limit (f, a) g=limit(f,x,a) g=limit(f,x,a,‘left’) g=limit(f,x,a,‘right’)

第四章 MATLAB的符号运算
六、极限

例题: >> syms x

>> limit(1/x) >> limit(1/x,0) >> limit(1/x,x,0) >> limit(1/x,x,0,'left') >> limit(1/x,x,0,'right')

第四章 MATLAB的符号运算
六、极限

例题:

limit(sin(x)/x) limit((x-2)/(x^2-4),2) limit((1+2*t/x)^(3*x),x,inf) limit((sin(x+h)-sin(x))/h,h,0) (?)

第四章 MATLAB的符号运算
六、极限

如果自变量不是x,最好显式说明!

>> syms h x; >> limit((sin(x+h)-sin(x))/h,h,0)

第四章 MATLAB的符号运算
六、极限

演练例题: 例
x?a x ) 求极限 lim( x ?? x ? a

第四章 MATLAB的符号运算
六、极限

解答:

>> syms a x >> limit(((x+a)/(x-a))^x,inf)

第四章 MATLAB的符号运算
六、极限

演练例题: 例 求极限 xlim?(tg ( x)) ?0
1 ln( x )

第四章 MATLAB的符号运算
六、极限

解答:

>> syms x >> limit((tan(x))^(1/log(x)),x,0,'right')

第四章 MATLAB的符号运 算
六、极限

演练例题: 例

若有

1 2tx f (t ) ? lim t (1 ? ) x ?? x 1 f (t ) ? lim(1 ? ) 2tx x ?? x



第四章 MATLAB的符号运算
六、极限

解答:

>> syms t x >> f=limit((1+1/x)^(2*t*x),x,inf) >> f=limit(t*(1+1/x)^(2*t*x),x,inf)

第四章 MATLAB的符号运算
七、微分
函数: diff 调用格式: diff(f) diff(f, t) diff(f,n) diff(f,t,n)

第四章 MATLAB的符号运算
七、微分

演练例题: 例 已知f(x)=ax2 +bx+c,求f(x)的微分。

第四章 MATLAB的符号运算
七、微分

解题:

>> syms a b c x >> f=sym('a*x^2+b*x+c') >> diff(f) >> diff(f,2) >> diff(f,a) >> diff(f,a,2) >> diff(diff(f),a)

第四章 MATLAB的符号运算
八、积分
函数: int 调用格式: int(f) int(f, t) int(f,a,b) (a,b 为数值式) int(f,t,a,b) int(f,m,n) (m,n为符号式)

第四章 MATLAB的符号运算
八、积分

演练例题: 例 已知f(x)=ax2 +bx+c,求f(x)的积分。

第四章 MATLAB的符号运算
八、积分

解答:

>> syms a b c x >> f=sym('a*x^2+b*x+c') >> int(f) >> int(f,x,0,2) >> int(f,a) >> int(int(f,a),x)

第四章 MATLAB的符号运算
八、积分

例如: >> int(1/(1+x^2)) >> int(x*log(1+x),0,1) >>int(4*x*t,x,2,sin(t))

第四章 MATLAB的符号运算
八、积分

注意事项:函数的积分可能不存在! 如:>>int('x/exp(x^3)')

第四章 MATLAB的符号运算
八、积分

例题 ?? x 求积分 ? dx 2 1 (1+x)

第四章 MATLAB的符号运算
八、积分

解答:

>> syms x >> int((sqrt(x)/(1+x)^2),1, inf)

第四章 MATLAB的符号运算
八、积分

例题:计算积分:

?1

??

x 1+z
2

dz

?0 xln(1? x)dx

1

第四章 MATLAB的符号运算
八、积分

解答: >> syms x y z >> R1=int(x/(1+z^2),x) (?) >> R1=int(x/(1+z^2),z,1,inf) (?) >> R2=int(x*log(1+x),0,1)

第四章 MATLAB的符号运算
八、积分

请问: 如何处理双重积分?

请在实验课上总结,有训练习题。

第四章 MATLAB的符号运算
九、级数
函数:symsum,taylor 调用格式:symsum(s,v,a,b) taylor(F,v,n)

第四章 MATLAB的符号运算
九、级数

演练例题: 例 分别求级数
1 1 1 1 1 1 1 1 ? ? ? ... ? ? ...和 ? ? ? ... ? ? ...的和。 2 3 k 2 2x3 3x4 k(k+1)

第四章 MATLAB的符号运算
九、级数

解答: >> syms k >> symsum(1/k,k,1,inf) >> symsum(1/(k*(k+1)),k,1,inf)

第四章 MATLAB的符号运算
九、级数

演练例题: 例 求sin(x)的10阶展开式。 并求x=pi/2处的值。

第四章 MATLAB的符号运算
九、级数

解答:

>> syms x >> taylor(sin(x),x,10) >> subs(ans,x,pi/2)

课后任务
课后任务: 演练limit,diff,int, symsum,taylor等函数。

第四章 MATLAB的符号运算
十、方程求解
函数:solve 解符号方程式f 调用格式:sovle(f1,f2,…,fn, v1,v2,v3,…,vn)

第四章 MATLAB的符号运算
十、方程求解

例题 求一元二次方程f(x)=ax2+bx+c的根。

第四章 MATLAB的符号运算
十、方程求解 >> f=sym('a*x^2+b*x+c') >> solve(f) >> syms a >> solve(f,a)

第四章 MATLAB的符号运算
十、方程求解

例题 求方程的解,方程如下:
? x ? y ? z ? 10 ? ?x ? y ? z ? 0 ? 2x ? y ? z ? ?4 ?

第四章 MATLAB的符号运算
十、方程求解

>> f1=sym('x+y+z-10'); >> f2=sym('x-y+z'); >> f3=sym('2*x-y-z+4'); >> solve(f1,f2,f3); >> [x,y,z]=solve(f1,f2,f3)

第四章 MATLAB的符号运算
十、方程求解

以下方式是否可以?

>> f1=sym('x+y+z=10'); >> f2=sym('x-y+z=0'); >> f3=sym('2*x-y-z=-4');

第四章 MATLAB的符号运算
十、方程求解

例题: 求方程的解,方程如下,这里a,b为系数:

? x ? ay ? 0 ? ? bx ? 2
2

第四章 MATLAB的符号运算
十、方程求解

>> syms x y a b; >> [x,y]=solve('x^2-a*y','b*x=2',x,y)

第四章 MATLAB的符号运算
九、微分方程求解
函数:dsolve 调用格式: 解微分符号方程式f

dsolve(f,cond,v) dsolve(f1,f2,…,fn,cond1,cond2…,condn,v1,v2…,vn) dsolve(f1,f2,…,fn)

第四章 MATLAB的符号运算

九、微分方程求解
注意事项: 1 Dy代表dy/dt, D2y代表d2y/dt2 。 2 如果没有初始条件,则求微分方程的通解。 3 系统默认变量t。

第四章 MATLAB的符号运算

九、微分方程求解
例题:
求微分方程y’=5的通解。 求微分方程y’=x的通解,指定x为自变量。 求微分方程y’’=1+y’的通解。 求微分方程y’’=1+y’的解,y|t=0=1,dy/dt|t=0=0。

第四章 MATLAB的符号运算

九、微分方程求解
>> dsolve('Dy=5') >> dsolve('Dy=x','x') >> dsolve('D2y=1+Dy') >> dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0')

第四章 MATLAB的符号运算

九、微分方程求解
例题: 求微分方程组

? ? y?x ? ? dy ? dt ? 2x ?
dx dt

第四章 MATLAB的符号运算

九、微分方程求解

>> [x,y]=dsolve('Dx=y+x, Dy=2*x') >> [x,y]=dsolve('Dx=y+x', 'Dy=2*x')

第四章 MATLAB的符号运算

九、微分方程求解
例题: 求微分方程组,初始条件x|t=0=0,y|t=0=1

? ? y?x ? ? dy ? dt ? 2x ?
dx dt

第四章 MATLAB的符号运算

九、微分方程求解

>> [x,y]=dsolve('Dx=x+y, Dy=2*x','x(0)=0,y(0)=1') >> [x,y]=dsolve('Dx=x+y, Dy=2*x','x(0)=0','y(0)=1')

第四章 MATLAB的符号运算

九、微分方程求解
例题: 求微分方程dy/dt=ay的通解。 并求初始条件y|t=0=1时的特解,a为系数。

第四章 MATLAB的符号运算

九、微分方程求解

>> dsolve('Dy=a*y') >> dsolve('Dy=a*y','y(0)=1')

第四章 MATLAB的符号运算

九、微分方程求解
例题: 求微分方程组的通解。

? ?y ? ? dy ? dt ? ? x ?
dx dt

第四章 MATLAB的符号运算

九、微分方程求解

>> [x,y]=dsolve('Dx=y, Dy=-x')

符号变量总结: 第四章 MATLAB的符号运算

1.符号变量定义。 2.符号变量的化简,复合函数,反函数,替换 指定精度值。 3.相关微积分计算(极限,微分,积分等), 级数和泰勒函数。 4.解方程和方程组。 5.解微分方程和微分方程组。

第四章 MATLAB的符号运算 十 习题汇总
习题1
k ??

计算

?
k ?0

x 2k k!

第四章 MATLAB的符号运算 十 习题汇总

习题1
求阶乘函数,可以用prod(1:n)来求n! 也可以采用gamma函数; factorial(n)也能求阶乘

第四章 MATLAB的符号运算 十 习题汇总

习题2 求极限f(x)=ax/sin(x),x->0 f(x)=(2+2/x) x,x->+ ? f(x)=a(1+1/x) x,x->+?
?

第四章 MATLAB的符号运算 十 习题汇总

习题3 Taylor展开 f(x)=2/(x-2),x=1.5,3阶展开式。 f(x)=x/sinx,x=pi/2,5阶展开式。
?

第四章 MATLAB的符号运算 十 习题汇总

习题3
其中:fn(x0)(x- x0)n/n!,称为拉格朗日余项。 以上函数展开式称为泰勒级数。

若函数f(x)在点的某一临域内具有直到(n+1)阶导数, ? 则在该邻域内f(x)的n阶泰勒公式为 f(x)=f(x0)+f`( x0)(x- x0)+f``( x0)(x-x0)&sup2;/2!+f```( x0)(x- x0)&sup3;/3!+...fn(x0

第四章 MATLAB的符号运 算 十 习题汇总
习题4 求导数 f(x)=ax/sinx,对x,三阶导数 1 1 x f(x)= a (1 ? x ) ,对a,三阶导数
?

第四章 MATLAB的符号运 算 十 习题汇总
?

习题5 求积分

? ? ?

a 1? z 2 xz 2 1+z 2

dz , a为常数 dz, x为常数 da,x为常数

x 1+ax 2

第四章 MATLAB的符号运 算 十 习题汇总
? 习题6 ? x sin xdx 求积分 ? ? ?? ? ? ( y sin x ? x sin y)dxdy ? ? ( x ? 2 y ? 1)dxdy
0 3?

4 cos 2 t+sin 2 tdt

?

1

0

2

4

3

x ?1 1 0

2

2

x

第四章 MATLAB的符号运 算 十 习题汇总
习题7 求微分方程的通解, a为常数。
?

dy dt dy dt dy dt

? at ? ay ? y?2

? ? 2y ? ? dy ? dt ? ? x ? 1 ?
dx dt

第四章 MATLAB的符号运 算 十 习题汇总
习题8 dy 求微分方程的解, dt a为常数。 2
?

? at ? 1, y |t ?0 ? 1
2

d y dt dy dt

? a t, y |t ?0 ? 0, |
2

dy dt t ?? /2

?1

? ay, y(0) ? 1

第四章 MATLAB的符号运 算 十 习题汇总
习题9 合并(x+y)(sinx+y)中的同类项。 化简cos2x+sin2x+2。 展开多项式sin(x+y)。 对x3-y3 进行因式分解。
?

第四章 MATLAB的符号运 算 十 习题汇总
?

习题10 解方程组 ? x 2 ? ay ? 1

, a, b为系数 ? ?bx ? y ? 2

课后任务

课后任务: 演练方程和微分方程。

第五章 MATLAB图形处理
* 教学目标
介绍MATLAB的两种基本绘图功能: 二维平面图形和三维立体图形。

* 学习要求
熟练掌握使用MATLAB的基本绘图功能。

第五章 MATLAB图形处理

请一位同学在黑板上画一幅图形。 请其他同学猜测他画的是什么图形?

第五章 MATLAB图形处理
一、图形制作概述
MATLAB中进行图形处理时,通常采用下 面的步骤:

1. 2. 3. 4. 5.

准备绘图数据; 选定绘图窗口与绘图区域; 调入绘图函数命令; 设置图形格式; 输出所绘制的图形。

第五章 MATLAB图形处理
一、图形制作概述
例如:在[0,2]内作出正弦函数的图形。

>> x=0:0.01:2 >> y=sin(x); >> plot(x,y)

第五章 MATLAB图形处理
一、图形制作概述
例 在0≤x≤2?区间内,绘制曲线 y=2e-0.5xcos(4π x) 程序如下: >>x=0:pi/100:2*pi; >>y=2*exp(-0.5*x).*cos(4*pi*x); >>plot(x,y)

第五章 MATLAB图形处理
小结:
二维绘图最简步骤: 1 确定x向量; 2 确定y=f(x); 3 用plot(x,y)绘图。

第五章 MATLAB图形处理
二、图形窗口
1 图形窗口是什么?

图形窗口是个独立的窗口, 系统自动将图形绘制在图形窗口上。

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
* 单个图形窗口的创建 * 多重子图窗口的创建

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(1) 单个图形窗口的创建与控制 函数命令:figure 调用格式:h=figure h=figure(n)

该命令创建单个图形窗口。

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(1) 单个图形窗口的创建与控制 注意事项: * 若没有打开图形窗口时执行绘图命令,将自动创 建一个图形窗口; * 若执行绘图命令前已经打开几个图形窗口,则 绘图命令把图形输出到当前窗口中、并把这个窗口中 原来的图形覆盖; * n为图形窗口的编号。

第五章 MATLAB图形处理
一、图形制作概述
2 图形窗口的创建与控制

(1) 单个图形窗口的创建与控制

>> h1=figure(1) >> h2=figure(2) >> h3=figure(3) >> x=0:0.01:2;y=sin(x);plot(x,y) >> x=0:0.01:2;y=cos(x);plot(x,y)

第五章 MATLAB图形处理
一、图形制作概述
2 图形窗口的创建与控制

(1) 单个图形窗口的创建与控制 相关命令: get(n):获得第n个图形窗口的有关属性。
set(n):设置第n个图形窗口的有关属性。

第五章 MATLAB图形处理
一、图形制作概述
2 图形窗口的创建与控制

(1) 单个图形窗口的创建与控制 例题:作出函数y=sin(x)在区间[0,10]上的图形。
>> x=0:0.01:10; >> x=0:0.01:10; >> y=sin(x); >> h=figure(1); >> plot(x,y);

>> set(h,'visible','on'); set(h,'visible','off'); >> get(h);get(1);

>> set(1,'name','hello')

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(2) 多重子图窗口的创建 函数命令:subplot 调用格式:h=subplot(m,n,p)
该命令将图形窗口分割为多个子图窗口。

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(2) 多重子图窗口的创建 注意事项: * 若执行命令前已经存在某一子图,则该命令将新 图形输出到相应子图,并把原来子图覆盖。 * m为子图行数,n为子图列数。 * p为子图窗口序号。

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(2) 多重子图窗口的创建 例题:在同一图形窗口、不同坐标系中分别作出 y=sin(x),y=sin(2x),y=sin(3x)和y=sin(4x)在[0, 2*pi]的图形。
>> x=(0:0.01:2)*pi; >>y1=sin(x);y2=sin(2*x);y3=sin(3*x);y4=sin(4*x); >> a=subplot(2,2,1);plot(x,y1); >> b=subplot(2,2,2);plot(x,y2); >> c=subplot(2,2,3);plot(x,y3); >> d=subplot(2,2,4);plot(x,y4);

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(3) 多重子图窗口的控制 相关命令: get(n):获得第n个图形窗口的有关属性。
set(n):设置第n个图形窗口的有关属性。

第五章 MATLAB图形处理
二、图形窗口
2 图形窗口的创建与控制
(3) 多重子图窗口的控制 相关命令: >> get(1); >> get(a); >> set(a,'visible','off'); >> set(a,'visible', 'on'); >> set(1,'visible','off'); >> set(1,'visible','on');

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
函数命令:plot 调用格式:plot(x) plot(x,y) plot(x,y1,x,y2,?)

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
plot是绘制二维图形的最基本函数,针对向量或 者矩阵的列来绘制曲线的。 在使用plot函数之前,必须首先定义好曲线上每 一点的x及y坐标。

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
(1)plot(x) * 当x为一向量时,以x元素的值为纵坐标,x的序 号为横坐标值绘制曲线。 * 当x为一m×n的实数矩阵时,以x序号为横坐标, 按列绘制每列元素值相对于其序号的曲线。最终绘制 出n条曲线。

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
例如:

>> >> >> >> >> >>

x=[1 2 3 4 5 6 ] plot(x) x=[1 2 ; 3 4] plot(x) x=[1 2 ; 3 4;5 6] plot(x)

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
(2)plot(x,y) * 若x,y为同维向量,则以x元素为横坐标值,y元 素为纵坐标值绘制曲线。(常见) * 若x是向量,y是有一维与x元素数量相等的矩阵, 则以x为共同横坐标,按列绘制y每列元素值,曲线数 为y的另一维的元素数。 * 若x,y是同维矩阵,则以x,y对应列元素为横、 纵坐标分别绘制曲线。曲线数为矩阵的列数。

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
例如:
>> x=[1 2 3 4 ] >> y=[7 8 9 0] >> plot(x,y) >> y=[7 8 9 0; 1 2 3 4 ; 2 2 2 2] >> plot(x,y) >> x=[1 2 3 4 ; 5 6 7 8 ; 9 1 2 3 ] >> y=[7 8 9 0; 1 2 3 4 ; 2 2 2 2] >> plot(x,y)

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
(3)plot(x,y1,x,y2,?) * 若x,y均为同维向量时,以公共的x元素为横坐 标值,以y1,y2,?元素为纵坐标值绘制多条曲线。 * x,y1,y2均为矩阵时,情况比较复杂,请大家 在实验课上自己演练验证。

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
例如:

>> x=[1 2 3 4 ] >> y1=[9 1 2 3 ] >> y2=[1 2 3 4 ] >> plot(x,y1,x,y2)

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数

提问:
若 >> x=[4 3 1 2 ] 如何绘制? 若>> y1=[1 2 4 1 ; 3 4 1 3] >> y2=[6 7 3; 5 5 5 ;2 2 2; 1 1 1 ] 如何绘制?

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数

比较以下两幅图: 问: 图形发生了什么变化?

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
例题:画出一条正弦曲线和一条余弦曲线。

>> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2);

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数
例题:画出一条正弦曲线和一条余弦曲线。

>> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,'r + -',x,y2,'k * :');

第五章 MATLAB图形处理
三、二维平面图形的绘制
1 基本图形函数

参考绘图参数表。

第五章 MATLAB图形处理
三、二维平面图形的绘制
2 图形修饰函数

参考图形修饰函数表。

第五章 MATLAB图形处理
三、二维平面图形的绘制
>> >> >> >> >> >> >>

2 图形修饰函数 例题:给例题中的图形中加入网格和标注。
grid on; xlabel('Independent Variable X'); ylabel('Dependent Variable Y1&Y2') title('Sin and Cos Curve') text(1.5,0.3,'cos(x)'); gtext('sin(x)'); axis([0 2*pi -0.9 0.9]);

第五章 MATLAB图形处理
三、二维平面图形的绘制
3 图形的比较显示

问题: 用什么方法可以把图形进行比较显示?

第五章 MATLAB图形处理
三、二维平面图形的绘制
3 图形的比较显示

方法一:用同一x,以及不同y进行绘制; 方法二:用hold on(/off)命令; 方法三:采用subplot命令。

第五章 MATLAB图形处理
三、二维平面图形的绘制
3 图形的比较显示
例题,在同一窗口中绘制线段。
>> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> y3=x; >> y4=log(x); >> plot(x,y1,x,y2); >> hold on; >> plot(x,y3); >> plot(x,y4); >> hold off; >> plot(x,y1);

第五章 MATLAB图形处理
课后任务:
1。 熟悉图形窗口的创建和控制(单一/多个子图); 2。 熟悉基本图形函数的使用方法。 3。 熟悉多个图形在同一图形窗口中的比较方法。

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图 函数命令:bar barh 调用格式:bar(y),bar(y,width); bar(x,y) , bar(x,y,width); bar(~,‘grouped’); bar(~,‘stack’)

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图 (1)bar(y),bar(y,width) , bar(y,width,‘grouped’) bar(y,width,‘stacked’) 该命令生成一组直方图,可视化结果为m 组,每组n个垂直柱。 (y可以为一组向量,或是m×n矩阵。)

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图 例题:
>> clf; >> y=[1 2 3 4]; >> bar(y); >> y=[1 2 3 4 ; 2 3 4 5; 5 6 7 8]; >> bar(y); >> bar(y,8); >> bar(y,0.08);

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图 例题:
>> subplot(3,1,1);bar(y); >> subplot(3,1,2);bar(y,'grouped'); >> subplot(3,1,3);bar(y,0.08,'grouped'); >> subplot(3,1,1);bar(y); >> subplot(3,1,2);bar(y,0.08,'stack'); >> subplot(3,1,3);bar(y,'stack');

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图 (2)bar(x,y),bar(x,y,width) , bar(x,y,width,’grouped’) bar(x,y,width,’stacked’) 该命令生成一组直方图,可视化结果为m 组,每组n个垂直柱。 (y可以为一组向量,或是m×n矩阵。)

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图 例题:
>> >> >> >> >> >> >> >> >> clf; x=[6 9 10]; y=[1 2 3 ]; bar(x,y); y=[1 2 3 4 ; 2 3 4 5; 5 6 7 8]; bar(x,y); bar(x,y,0.08); bar(x,y,'stack'); bar(x,y,'grouped');

第五章 MATLAB图形处理
四、其他二维图形绘制函数
1 直方图

思考: 对参数x的维度有什么要求? 和谁同维? 最好单调。

第五章 MATLAB图形处理
四、其他二维图形绘制函数
2 面积图 函数命令:area 调用格式:area(x,y)

该命令绘制(x,y)的面积图。 参考plot(x,y)

第五章 MATLAB图形处理
四、其他二维图形绘制函数
2 面积图 例题:

>> clf >> x=0:0.01:2*pi;y=sin(x); >> area(x,y)

第五章 MATLAB图形处理
四、其他二维图形绘制函数
2 面积图 提问: 如果画y=x,绘制的是哪部分?

第五章 MATLAB图形处理
四、其他二维图形绘制函数
3 饼图 函数命令:pie 调用格式:pie(x) pie(x,explode) pie(...,labels) 该命令绘制饼图。

第五章 MATLAB图形处理
四、其他二维图形绘制函数
3 饼图 例题:某班级考试,90分以上32人,80~89分 58人,70~79分27人,60~69分21人,60分以 下16人,画出饼图。
>> x=[32 58 27 21 16]; >> pie(x); >> explode=[0 0 0 0 1]; >> pie(x,explode); >> explode=[0 0 1 0 1]; >> pie(x,explode); >> pie(x,{'you','liang','zhong','jige','cha'});

第五章 MATLAB图形处理
四、其他二维图形绘制函数
参考书中介绍的绘图函数。

第五章 MATLAB图形处理
四、其他二维图形绘制函数
例题:绘制x=[1 2 3 4 5 6 ]的针状图。

>> clf >> x=[1 2 3 4 5 6]; >> stem(x);

第五章 MATLAB图形处理
四、其他二维图形绘制函数
例题:绘制x=[1 2 3 4 5 6 ],y=[1 2 3 4 5 6],u=[1 2 3 4 5 6],v=[1 2 3 4 5 6]的蓝色 和红色向量场图、关于(u,v)的羽状图、罗 盘图。
>> >> >> >> >> >> >> >> >> clf x=[1 2 3 4 5 6]; y=[1 2 3 4 5 6]; u=[1 2 3 4 5 6]; v=[1 2 3 4 5 6]; subplot(2,2,1);quiver(x,y,u,v); subplot(2,2,2);quiver(x,y,u,v,'r'); subplot(2,2,3);feather(u,v); subplot(2,2,4);compass(u,v);

第五章 MATLAB图形处理
四、其他二维图形绘制函数
例题:绘制50个随机数据分布特征的玫瑰花图 与根据峰值函数peaks绘制等值线图,并作出 1000个随机数的柱状图。
>> >> >> >> >> >> >> >> clf theta=10*rand(1,50); Z=peaks; x=0:0.01:2*pi;y=sin(x); t=randn(1000,1); subplot(3,1,1);rose(theta); subplot(3,1,2);contour(Z); subplot(3,1,3);hist(t);

第五章 MATLAB图形处理
四、其他二维图形绘制函数
例题:绘制由bucky函数所产生稀疏邻接矩阵 的拓扑图及关于向量t=[1 2 3 4 5 6]的阶梯 图,并在[0,4*pi]上绘制y=x*esin(x)的误差条 形图与彗星图。
>> clf >> [A,C]=bucky; >> t=[1 2 3 4 5 6]; >> x=0:0.7:4*pi;y=x.*exp(sin(x));l=0.1*y; >> subplot(2,2,1);gplot(A,C); >> subplot(2,2,2);stairs(t); >> subplot(2,2,3);errorbar(x,y,l); >> subplot(2,2,4);comet(x,y);

第五章 MATLAB图形处理
五、不同坐标系中绘图
1 直角坐标系中绘图 函数命令:plot等绘图函数。

第五章 MATLAB图形处理
五、不同坐标系中绘图
2 对数坐标系中绘图 函数命令:loglog,semilogx,semilogy 调用格式:loglog(x,y) semilogx(x,y) semilogy(x,y) 重要提示:log10(0)数学上没有意义,但 MATLAB并不给出错误提示信息。

第五章 MATLAB图形处理
五、不同坐标系中绘图
2 对数坐标系中绘图 例题:已知x=[1.2 7.0 3.6 5.0 8.0],y=[4.1 5.2 6.3 9.0 15.0], 分别在双 对数坐标系,半对数坐标系(分别取横纵轴为 对数)绘制(x,y)对应的图形。

第五章 MATLAB图形处理
五、不同坐标系中绘图
2 对数坐标系中绘图

>> >> >> >> >> >>

clf x=[1.2 7.0 3.6 5.0 8.0]; y=[4.1 5.2 6.3 9.0 15.0]; subplot(1,3,1);loglog(x,y); subplot(1,3,2);semilogx(x,y); subplot(1,3,3);semilogy(x,y);

第五章 MATLAB图形处理
五、不同坐标系中绘图
3 极坐标系中绘图 函数命令:polar 调用格式:polar(theta,r)
重要提示:可使用命令[x,y]=pol2cart(theta,r) 将极坐标系的数据点对(theta,r)转化为直角坐标 系的数据点对[x,y],命令plot(x,y)和命令 polar(theta,r)的效果相同。

第五章 MATLAB图形处理
五、不同坐标系中绘图
3 极坐标系中绘图 例题:分别在极坐标系和直角坐标系中作出 三叶玫瑰线r=a*cos(3*theta)的图形,这里 a=2。

第五章 MATLAB图形处理
五、不同坐标系中绘图
3 极坐标系中绘图 >> clf >> a=2; >> theta=(0:0.01:4)*pi; >> r=a*cos(3*theta); >> subplot(1,2,1);polar(theta,r); >> [x,y]=pol2cart(theta,r); >> subplot(1,2,2);plot(x,y);

第五章 MATLAB图形处理
五、不同坐标系中绘图
4 双轴图 函数命令:plotyy 调用格式:
[haxes,hline1,hline2]=plotyy(x1,y1,x2,y2,m1,m2)

第五章 MATLAB图形处理
五、不同坐标系中绘图
4 双轴图 例题:分别作出z1=A*e-at与z2=sin(bt)的双 轴图,这里t在[0,900],A=1000,a=b=0.005。

第五章 MATLAB图形处理
五、不同坐标系中绘图
4 双轴图 >> clf >> t=0:900;A=1000;a=0.005;b=0.005; >> z1=A*exp(-a*t); >> z2=sin(b*t); >> [haxes,hline,hline2]=plotyy(t,z1,t,z2,'semilogy','plot');

第五章 MATLAB图形处理
五、不同坐标系中绘图
4 双轴图 两侧标记处理函数:set

第五章 MATLAB图形处理
五、不同坐标系中绘图
4 双轴图 例如: 绘制双轴图 x=0:0.01:2*pi;y1=sin(x);y2=cos(x); 将其左、右坐标轴AX(1)和AX(2)标题分 别设置为“正弦函数”和“余弦函数”; 将两根曲线H1和H2的颜色分别设置为红色和 蓝色; 设置图例。

第五章 MATLAB图形处理
五、不同坐标系中绘图
>> x=0:0.01:2*pi;y1=sin(x);y2=cos(x); >>[AX,H1,H2]=plotyy(x,y1,x,y2,'plot'); >> set(get(AX(1),'Ylabel'),'string','正弦函数'); >> set(get(AX(2),'Ylabel'),'string','余弦函数'); >> set(H1,'Color','r'); >> set(H2,'Color','b'); >> legend('正弦函数','余弦函数',1) >> legend off >> plot(x,y1,x,y2) >> legend('正弦函数','余弦函数',1) >> legend off

4 双轴图

第五章 MATLAB图形处理
六、符号表达式绘图
函数命令:fplot,ezplot 调用格式: fplot(fun,lims,tol,n,p1,p2,?) ezplot(fun,lims,fig)

第五章 MATLAB图形处理
六、符号表达式绘图
1 fplot(fun,lims,tol,n,p1,p2,…)
fun: 绘制函数fun的图形; lims:作图区间; tol:相对误差,默认为2e-3; n: 作图点数,默认值n=1; p1,p2,?: 函数的参数,默认没有参数。

第五章 MATLAB图形处理
六、符号表达式绘图

例题:使用命令fplot作出函数y=sin(x) 的图形,自变量区间分别为:x在[0,2*pi] 之间;x在[pi,3*pi];x在[-pi,pi],y在[pi,pi];x在[0 2*pi](此时要求作图误差 小于0.001)。

第五章 MATLAB图形处理
六、符号表达式绘图
>> >> >> >> >> clf subplot(2,2,1),fplot('sin(x)',[0 2*pi]); subplot(2,2,2),fplot('sin(x)',[pi 3*pi]); subplot(2,2,3),fplot('sin(x)',pi*[-1 1 -1 1]); subplot(2,2,4),fplot('sin(x)',[0 2*pi],1e-3);

第五章 MATLAB图形处理
六、符号表达式绘图
2 ezplot(fun,lims,fig)
fun: 绘制函数fun的图形; lims:作图区间; fig:图形窗口句柄。
重要提示:ezplot可作隐函数与多元函数的图 形。默认作图区间为[-2*pi 2*pi].

第五章 MATLAB图形处理
六、符号表达式绘图
例题:绘制函数u2-v2-1=0在u区间[-3, 2],v区间[-2,3]上的图形。 >> clf >>ezplot('u^2-v^2-1',[-3 2 -2 3]);? >>ezplot('u^2-v^2-1',[-2 3 -3 2]);?

第五章 MATLAB图形处理
六、符号表达式绘图
例 隐函数绘图应用举例。 程序如下: subplot(2,2,1); ezplot('x^2+y^2-9');axis equal subplot(2,2,2); ezplot('x^3+y^3-5*x*y+1/5') subplot(2,2,3); ezplot('cos(tan(pi*x))',[ 0,1]) subplot(2,2,4); ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi])

第五章 MATLAB图形处理

第五章 MATLAB图形处理
绘图实例1:
[x,y] = meshgrid(linspace(-2,2,200)); R = 1.0; r = zeros(size(x)); rind = find((x + 0.4).^2 + (y + 0.4).^2 < R^2); r(rind) = 1; g = zeros(size(x)); gind = find((x - 0.4).^2 + (y + 0.4).^2 < R^2); g(gind) = 1; b = zeros(size(x)); bind = find(x.^2 + (y - 0.4).^2 < R^2); b(bind) = 1; rgb = cat(3,r,g,b); imagesc(rgb) axis equal off

第五章 MATLAB图形处理
绘图实例2:
q = imread('redGirl.jpg'); image(q) axis image off q_original = q; q(:,:,1) = 0; subplot(221) image(q_original) axis image off subplot(222) image(q) axis image off

第五章 MATLAB图形处理
绘图实例2:
q = imread(‘Waa.bmp'); image(q) axis image off q_original = q; q(:,:,1) = 0; subplot(221) image(q_original) axis image off subplot(222) image(q) axis image off

第五章 MATLAB图形处理
补充: 画一个circle。
t = linspace(0,2*pi); x = cos(t);y = sin(t); plot(x,y)

?发现什么问题?尝试以下命令观察变化。
axis equal axis square axis image

?实验课演练何时用equal,square和image。

第五章 MATLAB图形处理
二维绘图小结: 1.Figure,Plot,subplot; 2.绘图区域装饰; 3.常用绘图函数:bar,area,pie等。 4.其他绘图函数。(了解) 5.不同坐标系中绘图,双轴图。 6.符号表达式绘图:fplot,ezplot。

第五章 MATLAB图形处理
* 教学目标
介绍MATLAB的三维立体图形的绘图功能。

* 学习要求

熟练掌握使用MATLAB的基本三维绘图功能。

第五章 MATLAB图形处理
七、三维立体图形 1 三维曲线图基本绘图函数 函数命令:plot3 调用格式: plot3(x1,y1,z1,x2,y2,z2,…)

使用方式与plot相似。

第五章 MATLAB图形处理
七、三维立体图形 1 三维曲线图基本绘图函数 例题: 绘制方程 ? y1 ? sin(t)

? 2 ? y2 ? cos(t)在t ? [0,? ] ? x=t ?

第五章 MATLAB图形处理
七、三维立体图形 1 三维曲线图基本绘图函数 例题:
>> t=0:pi/10:2*pi; >> y1=sin(t); >> y2=cos(t); >> plot3(y1,y2,t,‘m:p’); ? >> grid on >> xlabel('Dependent Variable Y1'); >> ylabel('Dependent Variable Y2'); >> zlabel('Dependent Variable X'); >> title('Sine and Cosine Curve');

第五章 MATLAB图形处理
七、三维立体图形 1 三维曲线图基本绘图函数 提问:
>> plot3(y1,y2,t,‘m:p’); 前三个参数位置互换的结果是什么?

第五章 MATLAB图形处理
七、三维立体图形 1 三维曲线图基本绘图函数 例题:x在[0,2*pi],y在[0,2*pi], 作图z=cos(x)+sin(y)对应的曲线。
>> clf >> x=0:0.01:2*pi;y=0:0.01:2*pi; >> z=cos(x)+sin(y); >> plot3(x,y,z);

第五章 MATLAB图形处理
小结:
三维绘图最简步骤: 1 确定x向量; 2 确定y=f(x);z=f(x); 3 用plot3(x,y, z)绘图。

第五章 MATLAB图形处理
七、三维立体图形 2 三维曲线图其他绘图函数 函数命令:bar3,pie3,stem3,

ezplot3等。

使用方式与二维相似。

第五章 MATLAB图形处理
七、三维立体图形 2 三维曲线图其他绘图函数 例题:绘制3维条形图; 绘制3维饼图; 绘制3维针状图; 绘制3维函数图。

第五章 MATLAB图形处理
七、三维立体图形 2 三维曲线图其他绘图函数

>> clf >> x=[1 2 3 4;2 3 4 5;3 4 5 6]; >> y=[1 4 7]; >> subplot(2,1,1),bar3(x); >> subplot(2,1,2),bar3(y,x);

第五章 MATLAB图形处理
七、三维立体图形 2 三维曲线图其他绘图函数
>> clf >> x=[1 2 3 4 5 6]; >> subplot(3,1,1),pie3(x); >> subplot(3,1,2),stem3(x); >> subplot(3,1,3); >> ezplot3('cos(t)', 't * sin(t)', 'sqrt(t)', [0,6*pi])

第五章 MATLAB图形处理
七、三维立体图形 2 三维曲线图其他绘图函数
三维隐函数绘图例题: const=0; x=1:0.1:10;y=1:0.1:10;z=0:0.1:10; [x,y,z]=meshgrid(x,y,z); f=(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z-const; p=patch(isosurface(x,y,z,f,0)); set(p, 'FaceColor', 'red', 'EdgeColor', 'none'); daspect([1 1 1]) view(3) camlight; lighting phong

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 函数命令:mesh surf meshc surfc meshz meshgrid

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 调用格式:

mesh(x,y,z):绘制数据的三维网格表面; surf(x,y,z):绘制数据的三维曲面; meshc(x,y,z):绘制数据的三维网格表面,并添加等值线。 surfc(x,y,z):绘制数据的三维曲面,并在图下添加等值线; meshz(x,y,z):绘制三维网格表面,并在图下添加零平面。 [x,y]=meshgrid(x,y):根据已有m个数据的向量x和n个数据 的向量y分别生成有m×n个数据的新矩阵x和y。

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 例题: 分别用mesh函数和surf函数绘制高 斯矩阵的曲面。
>> clf >> Z=peaks(40); >> mesh(Z) >> surf(Z);

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 例题: 绘制方程
Z? sin( x 2 ? y2 ) x ?y
2 2

在x ? [-7.5, ,y ? [-7.5, 的图形。 7.5] 7.5]

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 通常在确定向量x,y的基础上,使 用命令meshgrid生成新的矩阵数据 [X,Y],再输入函数Z=f(X,Y),最后 使用mesh等命令生成三维网格、使 用surf等命令生成三维曲面。

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 例题:
>> clf >> x=-7.5:0.5:7.5;y=x; >> [X,Y]=meshgrid(x,y); >> R=sqrt(X.^2+Y.^2)+eps; >> Z=sin(R)./R; >> surf(X,Y,Z);

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 例题: 绘制方程 2 2 ? x +y ) (

Z=xe

形成的立体图。

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 例题:
>> clf >> x=-2:0.2:2; >> y=-2:0.2:2; >> [xx,yy]=meshgrid(x,y); >> zz=xx.*exp(-xx.^2-yy.^2); >> surf(xx,yy,zz)

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数 例题: 在x属于[-5,5],y属于[-4,4]上作出
1 3 2 Z= x ? y 2 对应的三维网格表面和

三维曲面。

第五章 MATLAB图形处理
七、三维立体图形 3 三维曲面图绘图函数
>> clf >> x=-5:0.1:5;y=-4:0.1:4; >> [X,Y]=meshgrid(x,y); >> Z=0.5*X.^3+Y.^2; >> subplot(2,2,1);mesh(X,Y,Z); >> subplot(2,2,2);surf(X,Y,Z); >> subplot(2,2,3);meshc(X,Y,Z); >> subplot(2,2,4);surfc(X,Y,Z); >> figure(2) >> meshz(X,Y,Z)

第五章 MATLAB图形处理
小结:
三维曲面绘图最简步骤: 1 确定向量x,y 2 使用命令meshgrid生成新的矩阵; 3 z=f(x,y) 4 用mesh等命令生成三维网格; 用surf等命令生成三维曲面。

第五章 MATLAB图形处理

七、三维立体图形 4 观察点设置 函数命令:view 调用格式: view(azimuth,elevation)

方位角azimuth是观察点和坐标原点连线在x-y平面内的投影 和y轴负方向的夹角。 仰角elevation是观察点与座标原点的连线和x-y平面的夹角。 默认:2D(0,90) 3D(-37.5,30)

第五章 MATLAB图形处理
七、三维立体图形 4 观察点设置 例题:

>>clf >> z=peaks(40); >> subplot(2,2,1);mesh(z); >> subplot(2,2,2);mesh(z);view(-37.5,30); >> subplot(2,2,3);mesh(z);view(180,0); >> subplot(2,2,4);mesh(z);view(0,90);

第五章 MATLAB图形处理
七、三维立体图形 5 色图处理 函数命令:colormap,brighten 调用格式: colormap(map) brighten(s)
colormap将当前图形色图设置为系统预定义 的map格式; brighten改变当前图形窗口色图的亮度。

第五章 MATLAB图形处理
七、三维立体图形 5 色图处理 例题:试将前例题色图设置为红色蓝色-深红色色图,同时将图形适当 增亮。

第五章 MATLAB图形处理
七、三维立体图形 5 色图处理
>> clf >> x=-5:0.1:5;y=-4:0.1:4; >> [X,Y]=meshgrid(x,y); >> Z=0.5*X.^3+Y.^2; >> mesh(X,Y,Z); >> colormap(hsv); >> brighten(0.60);

第五章 MATLAB图形处理
八、声音与动画 1 声音的实现 函数命令:sound 调用格式:sound(y) sound(y,f) 将向量y传送至扬声器,f为采样频 率。

第五章 MATLAB图形处理
八、声音与动画 1 声音的实现 例题:以20000Hz制作并播放余弦 曲线形式的声音。 >> x=cos(linspace(0,10000,20000)); >> sound(x);

第五章 MATLAB图形处理
八、声音与动画 1 声音的实现 其他函数命令:
wavplay wavread wavrecord wavwrite chirp beep

第五章 MATLAB图形处理
八、声音与动画 2 动画的实现 函数命令:getframe movie 调用格式:M=getframe movie(M,k)

第五章 MATLAB图形处理
八、声音与动画 2 动画的实现 例题:制作正弦曲线在[0,2*Pi]中从 起点到终点的延伸情况曲线,并播放 三次。

第五章 MATLAB图形处理
八、声音与动画 2 动画的实现
>> s=0.2;x1=0;
>> nframes=50; >> for k=1:nframes x1=x1+s; x=0:0.01:x1; y=sin(x); plot(x,y); axis([0 2*pi -1 1]); grid off; M(k)=getframe; end >> movie(M,3);

第五章 MATLAB图形处理
习题: 变化的曲线。 方程1:ax1+x2-x3=8 方程2:2x1+x2-4x3=5 方程3:x1+5x2+x3=-2

1。试用MATLAB的求解下面方程组, 并在统一坐标系中画出方程4个解随a在区间[0,2

第五章 MATLAB图形处理
习题:

2。已知=[1.2 7.0 3.6 5.0 8.0], y=[4.1 5.2 6.3 9.0 15.0],z=[11.1,15.2 16.3 19.0 25 试用MATLAB绘制x-y对应的图形与x-y-z对应的 图形。

第五章 MATLAB图形处理

习题:

3。试用matlab在同一图形窗口、不同坐标系中 分别作出y=cos(x),y=cos(2x),y=cos(3x),y=cos(4x 在[0,2pi]的图形。

第五章 MATLAB图形处理

习题:
4。试用MATLAB在同一直角坐标系中画出函数 Y1=sin(x),y2=cos(x),y3=x2 与y4=x在x[4,10]内 对应的曲线,并标出标题、图例、坐标轴。

第五章 MATLAB图形处理
习题:
5。试用MATLAB在同一直角坐标系中画出 A=[0 0.05 1 2 3 4]与 B=[1.521 1.420 1.353 1.212 1.106 0.993] 对应的曲线,并标出标题、图例、坐标轴。

第五章 MATLAB图形处理

习题:
6。试用MATLAB绘制极坐标系下的图形: p=cos(5Q/4)+1/3,其中Q在[0,8pi]之间。

第五章 MATLAB图形处理

习题:
7。试用MATLAB绘制曲线y=e-0.2x sin(x)在区间 [0,5pi]上的火柴杆图与阶梯图。

第五章 MATLAB图形处理

习题:

8。试用MATLAB分别在x[0,2pi],y[-pi,pi]条件下 使用命令fplot作出函数y=x+cos(x)的图形。

第五章 MATLAB图形处理

习题:
9。试用MATLAB在区间x[0,2pi],y[0,2pi]作出 Z=x+sin(y)对应的曲线。

第五章 MATLAB图形处理
习题:

10。试用MATLAB在矩形区域x[-10,10],y[-10,10 上分别绘制函数z=x2+y2与 y=sin根号下(x2+y2)/根号下(x2+y2)对应的三维 网格表面图和三维曲面图。

第五章 MATLAB图形处理

课后任务:
1。 熟悉二维图形函数的常用方法。 2。 熟悉三维图形函数的常用方法。

MATLAB综合能力

教学目标
综合运用MATLAB知识解决应用问题

MATLAB综合能力

习题一(1) 编写函数文件myfunc.m,任意输入一个 正整数,如果是偶数,用2除,如果是奇数, 用3乘再加1,反复这个过程,直到所得到的 数为1,将依次得到的这个数列返回 (数列中包括输入的正整数)。

MATLAB综合能力
思路: 1.建立一个函数文件。(四要素) 2.设计算法。 3.编写代码。 4.调试。

MATLAB综合能力

习题一(2) A 是一个維度m×n的实数矩阵. 写函数文件 countZero(A)算出A中有多少个零元素.

MATLAB综合能力
思路: 1.建立一个函数文件。(四要素) 2.设计算法。 3.编写代码。 4.调试。

MATLAB综合能力

习题一(3) A 是一个行向量. 写函数文件 findMin(A) 写一段程序, 找出A中的 最小元素 .

MATLAB综合能力
思路: 1.建立一个函数文件。(四要素) 2.设计算法。 3.编写代码。 4.调试。

MATLAB综合能力

习题一(4) 编写一个矩阵相加函数matadd.m,使其 具体的调用格式为A=matadd(A1,A2, …,An ) 要求该函数能接受可变多个矩阵进行加法 运算。

MATLAB综合能力
思路: 1.建立一个函数文件。(四要素) 2.设计算法。 3.编写代码。 4.调试。

MATLAB综合能力
习题二
试用MATLAB的求解下面方程组, 并在同一坐标系中分别用plot和ezplot 画出方程3个解随a在区间[0,2]变化的曲线。

ax1+x 2 ? x 3 ? 8 2x1 ? x 2 ? 4x 3 ? 5 x1 ? 5x 2 ? x 3 ? ?2

MATLAB综合能力

思路: 1.建立一个以a为常数的方程。 2.然后求解。 3.方程的解是以a为变量的函数,绘之。

MATLAB综合能力

编程: 根据思路编写代码 例题中使用plot函数画图, 请自己使用ezplot函数画图。

MATLAB综合能力
习题三
理解参数可调性。 (1)根据输入参数和输出参数的个数编写程序。 (2)可变数目的参数。

MATLAB综合能力
思路: 哪些变量控制输入输出参数? 控制输入参数:nargin和varargin 控制输出参数:nargout和varargout

MATLAB综合能力
编程: 哪些变量控制输入输出参数? 控制输入参数:nargin和varargin 控制输出参数:nargout和varargout

MATLAB综合能力
习题四
读写MS的Excel文件 *读xls文件: xlsread *写xls文件: xlswrite

MATLAB综合能力
习题四

>>num=xlsread('myxls.xlsx') >>num=xlsread('myxls.xlsx','sheet2') >>num=xlsread('myxls.xlsx','sheet2‘,’A1:E1’) >>name={'x坐标' 'y坐标'};M=[1 2 ; 3 4 ; 5 6; 7 8]; >>xlswrite('myxls.xlsx',name, 'sheet1','A1:B1') >>xlswrite('myxls.xlsx',M, 'sheet1','A2:B5')

MATLAB综合能力

习题五

playjiong

MATLAB综合能力

习题六 一只失明的小猫,不幸掉进山洞,山洞有 三个门,一个门进去后走2hours可以回到地面, 第二个门进去后,4h又回到出发点;第三个门 进去后走6h还是回到原始出发点。 小猫由于眼睛失明,每次都随机选择其中一个 那么可怜的小猫走出山洞的期望时间是多少?

MATLAB综合能力

习题六 设小猫走出山洞的期望时间为t,如果小猫 不幸进了第二或第三个门,那么他过4h或者6h 又和进门前的状况一样了,只不过这两种不幸 的情况发生的概率都为1/3.而万幸一次就走出 山洞的概率也是1/3.则: t=2*(1/3)+(4+t)*(1/3)+(6+t)*(1/3)

MATLAB综合能力

习题七 制作红色小球沿一条带封闭路径的 下旋螺线运动的实时动画。

MATLAB综合能力
习题八 Matlab中如何筛选出矩阵中所有的奇数。 (例如alpha=[0,11,3,5,5,-6,7,-8,9,10])?
alpha=[0,11,3,5,5,-6,7,-8,9,10]; alpha(find(mod(alpha,2)==1))

MATLAB综合能力
习题九 Matlab实数矩阵中所有非正元素设定为100. (例如alpha=[0,11,3,5,5,-6,7,-8,9,10])?
alpha(find(alpha<=0))=100

MATLAB综合能力

习题十 绘制五角星。

MATLAB综合能力

习题十一 参数可调性。 用MATLAB编写函数,当函数输入为一个 参数时,输出为输入参数的平方;当函数输入 为2个参数时,输出为两个输入参数之和。 函数定义为: function out=myfunc(in1,in2)

MATLAB综合能力

总复习


相关文章:
Matlab2012-2013答案
搜试试 3 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 理学...Matlab2012-2013答案_理学_高等教育_教育专区。Matlab答案 试题_2012_年~_2013_...
2012-2013 第一学期 大学物理(下) 作业
搜 试试 帮助 全部 DOC PPT TXT PDF XLS ...高等应用数学问题的MATLAB... 145页 2财富值 2011...2012-2013 第一学期 大学物理(下) 作业2012-2013 ...
2013--matlab复习题目
2012-2013最新MATLAB课件 746页 5财富值 MATLAB信息论文(2013结课论... 12页...《Matlab》期末考试复习题目 Matlab 复习提示:除了下面的复习题外,大家还需要看课本...
2012~2013年双色球数据统计分析
搜试试 3 帮助 全部 DOC PPT TXT PDF XLS ...2012~2013年双色球数据统计分析_金融/投资_经管营销...关键字:统计分析;双色球;Matlab;预测。 我第一次...
2012-2013-2实验1 Matlab基础实验
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 自然科学 ...2012-2013-1实验课表机械... 暂无评价 6页 1下载券 实验一:MATLAB基础实验....
Matlab-2013a教程
搜试试 3 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 IT/计算机 ...Matlab-2013a教程_电脑基础知识_IT/计算机_专业资料。matlab教程 ...
2013-第三章matlab
搜试试 3 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 理学...2013-第三章matlab_理学_高等教育_教育专区。第 3 章 数值数组及向量化运算...
2012最新MATLAB库函数
2012-2013最新MATLAB课件... 746页 2下载券 2012最新论文通信系统中... 49页...Matlab 库函数 MATLAB 库函数 Aa abs 绝对值、模、字符的 ASCII 码值 acos ...
matlab课件
matlab课件_工学_高等教育_教育专区。matlab课件,初学...2013年注会设计统考真题及答案 89份文档 爆笑大撞脸...文档贡献者 飞天竞流 贡献于2012-03-07 1/2 ...
matlab2013a安装教程(最全)
搜试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 IT/计算机 ...matlab2013a安装教程(最全)_计算机软件及应用_IT/计算机_专业资料。Matlab2013a...
更多相关标签:
matlab课件 | matlab课件下载 | matlab教学课件 | matlab 课件ppt | matlab高等代数课件 | matlab插值课件下载 | matlab2012b | matlab2012b安装教程 |