matlab第5讲

合集下载

第5讲 MATLAB绘图

第5讲  MATLAB绘图

(2) 对于隐函数f = f(x,y),ezplot函数的调 用格式为: ezplot(f):在默认区间-2π<x<2π和-2π <y<2π绘制f(x,y) = 0的图形。 ezplot(f, [xmin,xmax,ymin,ymax]):在区 间xmin<x<xmax和ymin<y<ymax绘制f(x,y) = 0的图形。 ezplot(f, [a,b]):在区间a<x<b和a<y< b绘 制f(x,y) = 0的图形。
例5-1 在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)
例5-2 在0≤t≤2区间内,绘制曲线 x=tsin(3t) y=tsin2t 程序如下: t=0:0.1:2*pi; x=t.*sin(3*t); y=t.*sin(t).*sin(t); plot(x,y);
plot 函数最简单的调用格式是只包含一 个输入参数: plot(x) 在这种情况下,当 x 是实向量时,以该 向量元素的下标为横坐标,元素值为纵坐标 画出一条连续曲线,这实际上是绘制折线图。
(3) 对只包含一个输入参数的plot函数, 当输入参数是实矩阵时,则按列绘制每列元 素值相对其下标的曲线,曲线条数等于输入 参数矩阵的列数。 当输入参数是复数矩阵时,则按列分别 以元素实部和虚部为横、纵坐标绘制多条曲 线。
5.2 其他二维图形
5.2.1 其他坐标系下的二维数据曲线图
1. 对数坐标图形 MATLAB提供了绘制对数和半对数坐标 曲线的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,…) semilogy(x1,y1,选项1,x2,y2,选项2,…) loglog(x1,y1,选项1,x2,y2,选项2,…)

控制系统matlab仿真讲义

控制系统matlab仿真讲义
本讲义详细介绍了控制系统的matlab仿真与设计,重点围绕控制系统CAD和经典控制理论CAD展开。在控制系统固有特性分析方面,讲义首先探讨了时域分析,通过二阶系统闭环传函的标准形式,分析了阻尼比变化对系统闭环极点位置的影响,并展示了simulink的仿真结果。此讲义深入探讨了频域分析,介绍了频率特性法的基本概念和实用价值,详细阐述了伯德图、奈奎斯特图和尼克尔斯图等频率特性图的应用。特别是,通过伯德图命令的详细示例,展示了如何生成幅频特性和相频特性图,并提供了相应的matlab代码。这些分析方法和示例代码,有助于读者深入理解和掌握控制系统的matlab仿真与设计技术。

第5讲 matlab数据拟合

第5讲 matlab数据拟合

A=polyfit(x,y,2)
z=polyval(A,x); plot(x,y,'k+',x,z,'r') %作出数据点和拟合曲线的图形
2)计算结果: A = -9.8108 20.1293 -0.0317
f (x) 9.8108x2 20.1293x 0.0317
10
用MATLAB作非线性最小二乘拟合
实例:下面数据是某次实验所得,希望得到X和 f之间的关系?
x1 2 4
7
9
12 13 15 17
f 1.5 3.9 6.6 11.7 15.6 18.8 19.6 20.6 21.1
4
最临近插值、线性插值、样条插值与曲线拟合结果:
0
2
4
6
8
10
12
14
16
18
0
5
已已已已已 10
25
已已已已已 20
1. 作多项式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m)
输出拟合多项式系数
输入同长度
拟合多项
a=[a1, …am , am+1] (数组)) 的数组X,Y
式次数
2. 对超定方程组 Rnmam1 yn1 (m n) ,用 a R \ y
可得最小二乘意义下的解。
fun是一个事先建立的 定义函数F(x,xdata) 的 M-文件, 自变量为x和 xdata
选项见无 迭代初值 已知数据点 约束优化
12
2. lsqnonlin
已知数据点: xdata=(xdata1,xdata2,…,xdatan) ydata=(ydata1,ydata2,…,ydatan)

2第五讲MATLAB符号运算

2第五讲MATLAB符号运算

(二)符号表达式运算
1.符号表达式的四则运算
符号表达式的加、减、乘、除运算可直接由算 符’+’,’-’*’,’/’,’\’ 来实现,幂运算可以由’^n’来实现。
算符’.*’,’./’,’.\’,’.^’,分别实现元素对元素的数组的乘、 左除、右除、和幂的运算。
MATLAB中没有ln运算符遇到它用log运算符代替。 另外log2(x),log10(y)表示求x和y的以2为底和以10为 底的对数。
实例演示
• 作符号计算(解方程组,其中a,b为常数,
x,y为变量):
• a,b,x,y均为符号运算量。在符号运算前,
应先将a,b,x,y定义为符号运算量。
实例演示
a=sym('a'); %定义‘a’为符号运算量,输出 变量名为a
b=sym('b');x=sym('x');y=sym('y');
(四)符号替换
• MATLAB软件提供的符号替换命令为subs,通常使 用下面三种形式(对数组也适用): • (1) subs(s,new) 用new替换s中的自由变量; • (2) subs(s,old,new) 用new替换s中的变量old; • (3) subs(s) 用当前内存中的已赋值变量去代 替s中的同名变量; • 例:执行命令 • subs(a+b,a,4) • 执行结果为 • 4+b
学习内容 • 一、符号对象
• 二、符号运算与高等数学 • 三、符号方程的求解
符号运算与高等数学
一、极限的计算
二、导数的运算
三、积分的运算
四、级数求和问题
五、函数的极值和零点
一、极限的计算
• 求极限问题解析解的MATLAB命令格式: • Limit(f)

matlab第五讲教案

matlab第五讲教案

西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第四章课型:新授课教具:多媒体教学设备,matlab教学软件一、目标与要求掌握矩阵与数组的相关运算,及matlab中矩阵运算的相关函数,包括三角分解、正交变换、奇异值分解、特征值分解、矩阵的秩的运算等。

二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab程序时能够熟练运用矩阵运算的相关函数实现相应的功能。

三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。

四、教学内容一、课后习题的解说。

(1)在计算器发明(约1974年)之前,人们需要用数学用表来计算正弦、余弦和对数值。

创建正弦值数学用表的步骤如下:①创建角度矢量、范围在0~3600之间,步长为180。

②计算正弦值,用角度和计算出来的正弦值创建表格。

③分别用两个disp语句给表格加上标题和表头。

④用fprintf显示数据,要求小数点后有两位有效数字。

解:angle=0:18:360; sine=sin(angle/180*pi);disp(' SINE TABLE ')disp(' Angle Sine ')fprintf(' %4.2f %4.2e\n',[angle;sine])(2)使用搜索引擎或浏览器搜索英镑、日元、欧元和人民币对美元的汇率,并把输出结果绘制成表。

要求用disp在表格中添加标题和表头,用fprintf输出格式化数据。

①创建日元和美元的汇率表,表中共有25行,从5日元开始,步长为5日元②创建人民币和美元的汇率表,表中共有30行,从5元开始,步长为5元③创建数据表格,表中有5列,第一列是美元,第二列是欧元,第三列是英镑,第四列是人民币,第五列是日元。

计算与1到10美元等价的其它货币值。

(将结果输出到.txt文件中,此步骤属选做)解:①jpy=5:5:25*5;usd1=jpy*0.01301;disp(' JPY &USD TABLE ')disp(' JPY USD ')fprintf(' %4.2f %4.2f\n',[jpy;usd1])②cny=5:5:30*5;usd2= cny *0.1567;disp(' CNY &USD TABLE ') disp(' RMB USD ') fprintf(' %4.2f %4.2f\n',[cny;usd2])③usd=1:1:10;eur=usd* 0.7323; gbp=usd* 0.6405; cny=usd* 6.3816; jpy=usd*76.358;disp(' AS Exch')disp(' USD EUR GBP RMB JPY')fprintf(' %4.2f %4.2f %4.2f %4.2f %4.2f \n',[ usd;eur;gbp;cny;jpy])二、矩阵的相关知识掌握矩阵与数组的相关运算,及matlab 中矩阵运算的相关函数,包括三角分解、正交变换、奇异值分解、特征值分解、矩阵的秩的运算等。

《MATLAB教程及实训》第五章ppt5

《MATLAB教程及实训》第五章ppt5

例5-12 根据输入参数的个数将例5-11中参数个数使用 varargin和varargout函数,绘制不同线型的曲线,绘制的 曲线与图5-6相同。 function varargout=ex5_12(varargin) x=0:10; lin=length(varargin); %取输入参数个数 在命令窗口中输入 y=lin*ones(11,1); 调用命令: hold on >> y=ex5_12('y','o') if lin==0 varargout = plot(x,y) [2] elseif lin==1 y= plot(x,y,varargin{1}) 2 else >> ex5_12('y','o') plot(x,y,[varargin{1} varargin{2}]) varargout = end [2] varargout{1}=lin ans = 2
5.3.2 函数的输入输出参数
1. 参数的传递 函数的参数传递是将主调函数中的变量值 传给被调函数的输入参数 (1)函数参数传递的是数值 (2)被调函数的输入参数是存放在函数 的工作空间中,与MATLAB的工作空间是 独立的,当调用结束时函数的工作空间被清 除,输入参数也被清除。
2. 输入输出参数的个数
例5-2 使用switch结构判断学生成绩的等级,90分以上 为优,80~90为良,70~80为中,60~70为及格,60分以 下为不及格。
>> score=98; >> s1=fix(score/10); >> switch s1 case {9,10} s='优' case 8 s='良' case 7 s='中' case 6 s='及格' otherwise s='不及格' end

第5讲MATLAB多项式及插值

第5讲MATLAB多项式及插值
第5讲MA上的较大元素构成的 新矩阵p。
第5讲MATLAB多项式及插值
5.1.2 求和与求积
数据序列求和与求积的函数是sum和prod,其使用方 法类似。设X是一个向量,A是一个矩阵,函数的调用格 式为:
sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。 prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时, 返回一个列向量,其第i个元素是A的第i行的各元素之和。 prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时, 返回一个列向量,其第i个元素是A的第i行的各元素乘积。
为解决Rung问题,引入分段插值。 第5讲MATLAB多项式及插值
算法分析:所谓分段插值就是通过插值点用折线或低次曲线 连接起来逼近原曲线。
MATLAB实现 可调用内部函数。 ➢ 命令 interp1
功能 : 一维数据插值(表格查找)。该命令对数据点之 间计算内插值。它找出一元函数f(x)在中间点的数值。其 中函数f(x)由所给数据决定。
t = 1900:10:1990; p = [75.995 91.972 105.711 123.203 131.669...
150.697 179.323 203.212 226.505 249.633]; 对应于美国从1900年到1990年的每10年的人口数,求 1975年的人口。由此推断美国1900年到2000年每一年的 人口数,并画出图形。
k1
j1
xxj ) xk xj
jk
MATLAB中没有直接实现拉格朗日算法的函数,我们已经介 绍过该函数的书写:

1.MATLAL语言

1.MATLAL语言
科学计算与MATLAB语言 语言 科学计算与
教学内容
第1讲介绍MATLAB概述与运算基础 第2讲介绍MATLAB程序设计 第3讲MATLAB文件操作 第4讲绘图形功能 第5讲线形代数中的数值计算问题 第6讲数据处理方法与多项式 第7讲MATLAB符号计算 第8讲MATLAB的图形用户界面设计
第一讲 MATLAB概述与运算基础 概述与运算基础
4.应用工具箱
基本部分和各种可选的工具箱。 基本部分中有数百个内部函数。 其工具箱分为两大类:功能性工具箱和学科性工具箱。 功能性工具箱主要用来扩充其符号计算功能、可视建模仿真 功能及文字处理功能等。学科性工具箱专业性比较强,如控 制系统工具箱、信号处理工具箱、神经网络工具箱、最优化 工具箱、金融工具箱等,用户可以直接利用这些工具箱进行 相关领域的科学研究。
六.应用举例
【例1】 求解线性方程组AX=B 1 0 其中A= 7 3 3 1.5 3.6 10 7 8 2 9 7 4 33 6 , B= 3 -4 20 5 16
0.5 -4 -3 8.5 0 22 21
90 -20
在MATLAB命令窗口输入命令: a=[1,1.5,2,9,7 ; 0,3.6,0.5,-4,4 ; 7,10,3,22,33;3,7,8.5,21,6;3,8,0,90,-20]; b=[3;-4;20;5;16]; x=a\b 得到的结果是: x= 3.5653 -0.9255 -0.2695 0.1435 0.0101
3.图形功能
MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低 级图形命令,另一种是建立在低级图形命令之上的高级图形命令。 利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至 四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精 细控制等等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13
6.1 元胞数组的创建 (续) 元胞数组的连接
Exam: 连接元胞数组a、b,生成元胞数组c。 clear c c=[a b] % or c=[a; b] c=
[3x3 double] 'Anne Smith' 'James Bond' [3x2 double] [3.0000 + 7.0000i] [1x21 double] [ 3.1416] [5x5 double] >>c=[a; b] Result ?
空数组不占据存储空间
最简单的空数组:0 x 0的矩阵

复杂的空数组:0 x 5 or 10 x 0
例如:>>a=[]; b=ones(0,5);
察看空数组:>>a, b, c % or whos a b c
✻ 空数组并非全0数组
Matlab Language
9
2013-7-9
5. 空数组 (续)
数组维数的减小


删除数组的某列和行
删除(2-D、3-D)数组的单个元素 使用“全下标”方式,不能删除单个元素 >>a(1, 2)=[] %系统会警告信息 使用“单下标”可以删除单个元素 >>a(2:4)=[] %数组a将变为向量
>>a = ones(4), a(:,2)=[]

使用“[]”同样可以减小字符数组的维数
2013-7-9
Matlab Language
3
2.3 字符串
double 指令: 查看字符串变量的存储內容(即 ASCII 内码) char 指令: 将 ASCII 內码转换为字符串形式

【例3-2】 : 字符串与ASCII码的相互转换
sentence = 'I''ve got a date!'; sentenceAscii = double(sentence) %查看 sentence 的 ASCII 码 sentence2 = char(sentenceAscii) % 将 ASCII 码恢复成字符串形式

“{ }” 表示空元胞数组
Content indexing方式创建元胞数组
>> b{1,1} = 'James Bond' ; >> b{1,2} = [1 2;3 4;5 6]; >> b{2,1} = pi; >> b{2,2} = zeros(5);
2013-7-9
Matlab Language


第一种方法是使用二维字符数组(Two Dimensional Character Arrays) 必须先确认每个字符串(即每一行)的长度一样,否则 就必须在短字符串结尾补齐空格
【例3-5】 : 多行字符串变量
departments = [„ee ‟; „cs ‟; „econ‟] ✻ 注意上述语句中空格字符的使用。 departments = ee cs econ
sentenceAscii = 73 39 118 101 32 103 111 116 32 97 32 100 97 116 101 33 sentence2 = I've got a date!
2013-7-9
Matlab Language
4
2.字符串的判断
class 或 ischar 指令: 可以用来判断一个变量的类型 或它是否为字符串变量。 【例3-4】 : 判断一个变量是否为字符串变量。
2013-7-9
Matlab Language
17
6.3 读取元胞数组中的内容
直接取用元胞数组的整个元胞(单元) 取用元胞数组某元胞內的数据单位 一次读取或刪除多个元胞
2013-7-9
Matlab Language
18
6.3 读取元胞数组中的内容 (续) Exam: 读取上述b元胞数组的第1行、第2列元胞的内容 >>b, d=b{1, 2}
Matlab Language
Cell 1,3 [1 2 3 4] test
11
2013-7-9
6.1 元胞数组的创建
创建方法
赋值语句
cell函数 赋值语句创建元胞数组 元胞索引(cell indexing)方式 格式:a(1, 2)={… … …} 元胞内容索引(content indexing)方式 格式:a{1, 2}=[…] or „…‟ 直接用大括号一次把所有元素括起来 b = {'James Bond', [1 2;3 4;5 6]; pi, ones(5)}
2013-7-9
Matlab Language
16
6.2 显示元胞数组的内容(续) 使用内容下标索引显示指定元胞的数据
格式:var_name{row_index, column_index} 或 var_name{:} Example: >>a{1, 2} … >>a{:} …
%一次显示a的全部数据
5
读取元胞数组元胞内部分数据: 元胞数组内容索引,再加上一般数组的索引,
即:var_name{row_ind,col_ind}(r_ind, c_ind)
2013-7-9
Matlab Language
20
6.3 读取元胞数组中的内容 (续) Exam: 读取元胞数组a第1行的所有元胞。
>>f=a(1,:) f= [3x3 double] 'Anne Smith'
2013-7-9
Matlab Language
15
6.2 显示元胞数组的内容 celldisp显示元胞数组的全部内容
>>a a= [3x3 double] 'Anne Smith' [3.0000 + 7.0000i] [1x21 double]
>>celldisp(a) %显示全部内容
>>cellplot(a) %图形方式显示元胞数组的结构
2013-7-9
Matlab Language
7
4.字符串的操作 strcmp 指令: 用于比较字符串的內容的异同 【例3-6】 : 字符串比较
str1 = 'today'; str2 = 'tomorrow'; str3 = 'today'; out1 = strcmp(str1, str2) out1 = 0 out2 = strcmp(str1, str3) out2 = 1
21
7.1 结构与结构数组的概念 结构(structure)
由字段(或域,fields)组成


每个字段可以是任一种Matlab数据类型的数据或 变量
与C语言的结构类型相似 多个结构构成结构数组(structure array) 结构数组的元素就是一个结构
结构数组(structure array)
Exam: 删除元胞数组a第1行的所有元胞。
>>a(1,:) = [] a= [3.0000 + 7.0000i] [1x21 double]
2013-7-9
Matlab Language
Note: 这里使用的是元胞索 引(cell indexing),而不是 内容索引(content indexing)
2013-7-9
Matlab Lanl array) 元胞数组(单元数组)的概念


特殊的数据类型,在一个数组中存放各种不同类 型的数据
每个单元相当于一个“盒子” “盒子”可存储各种不同类型的MATLAB数据 元胞数组例子: Cell 1,1 Taiwan Taibei Cell 1,2 Mainland Beijing
2013-7-9
Matlab Language
14
6.1 元胞数组的创建 (续) cell函数创建元胞数组
>>b = cell(2, 3)
b= [] [] [] [] [] []
>> whos b
Name b Size 2x3 Bytes Class 24 cell array
注意:每个cell占有4个字节的空间 >>b(1,3) = {1:3}; % or b{1,3} = 1:3;
% 比较字符串 str1 和 str2 %表示字符串 str1 和 str2不同 % 比较字符串 str1 和 str3 %表示字符串 str1 和 str2相同
不相等返回0,相等返回1
2013-7-9
Matlab Language
8
5. 空数组(empty array) 有一维是0的数组即为空数组
chinese = „今日事,今日毕'; out1 = class(chinese) % out1 的值是 “char” x = chinese+1; out2 = ischar(x) % out2 的值是 0,代表 x 不是字符串变量
2013-7-9
Matlab Language
5
3. 一个字符数组变量存储多行字符串
Matlab语言及其应用
第5讲
2.3 字符串
Matlab 用「单引号」来界定一个字符串。 可以使用方括号“[ ]”直接连接多个字符串变量,得到 一个新字符串变量。
【例3-2】命名字符串变量
str1 = „I like MATLAB,‟; % 建立字串变量 str1 str2 = ' JavaScript, and Perl!'; % 建立字串变量str2 str3 = [str1 str2] % 直接连接str1及str2,以建立str3
相关文档
最新文档