matlab第5讲
第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仿真讲义
第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符号运算
(二)符号表达式运算
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程序时能够熟练运用矩阵运算的相关函数实现相应的功能。
三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
四、教学内容一、课后习题的解说。
(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
例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.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讲介绍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的高级图形命令可以轻而易举地绘制二维、三维乃至 四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精 细控制等等。
MATLAB学习课件第五章
4
5.1 概述
根据程序运行方式的不同,可以将MATLAB程序设计分为
两种方式:
一种是在命令窗口中逐条输入命令,另一种是将相关
的命令存储在一个M文件中。
前者称为命令行方式,又称为指令驱动模式。后者称
为M文件的程序运行方式。
命令行方式 M文件编程方式 命令逐条解释执行 自动一次执行完文件中所有命令 简单,直观 不直观 速度慢,执行过程不能保留, 速度快,可以重复执行文件 不能重复执行
25
2、while语句
while语句的一般格式为: while 表达式 循环体语句 end while语句为条件循环语句,循环次数不确定,只要循环条件
表达式的结果非零,语句体就重复执行,直到循环条件表达 式的结果为零,则跳出循环
26
5.3.4 程序流的控制
与控制程序执行过程相关的语句主要有break语句、
5.3 MATLAB程序结构
MATLAB程序的控制结构有3种:
顺序结构、选择结构和循环结构。
按照程序设计的观点, 任何算法功能都可以通过由程序模
块组成的三种基本程序结构的组合来实现。
11
5.3.1 顺序结构
顺序结构是指程序按程序语句或模块在执行流中的顺序逐
个执行,直到执行到程序的最后一个语句。
函数式M文件 接受输入参数,有返回值 文件中定义变量为局部变量, 文件执行完毕时,局部变量 清除,不保留在工作空间
要通过函数调用的方式调用 才能运行 用户需要自定义某种具体算 法时使用
5.2.3 M文件操作
对M文件常用的操作有:打开M文件、新建M文件、编辑
M文件、保存M文件和运行M文件等。
10
例5.8:判断读取矩阵是否正确。 解:程序如下 n=4; a=magic(3) try a_n=a(n,:), %取a的第n 行元素 catch a_n=a(end, : ), %如取a的第n 行出错,则改取a的最后一行 end lasterr %显示出错原因 执行结果如下; a= 8 1 6 3 5 7 4 9 2 a_n = 9 2 ans = Attempted to access a(4,:); index out of bounds because size(a)=[3,3].
第五讲 基于MATLAB-Simulink的建模与仿真
MATLAB软件简介?
MATLAB软件的典型应用领域:
❖科学研究; ❖工程技术应用研究 ❖CAI(Computer Aided Instruct) ❖数学实验(Mathematical Experiment) ❖数学建模(Mathematical Modeling)
模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的传递
函数模型 Memory:存储上一时刻的状态值 Transport Delay:输入信号延时 一个给定时间再输出 Variable Transport Delay:输入 信号延时一个可变时间再输出
✓ 离散模块(Discrete)
For循环不能用For循环内重新赋值循环变
量n来终止。
在For循环中循环控制量的范围可以是任
何有效的MATLAB矩阵。比如
data=[11 9 45 6; 7 16 -1 5];
for n=data
x=n(1)-n(2)
end 这时程序的输出有四个数值,分别是矩阵
data的两列相减的结果
x = 4 x = -7
x = 46 x = 1
For循环可按需要嵌套,即For循环体内的命 令组中可以出现另一个For循环体,这体现了 For循环体也是命令组。比如 for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2; End
end
MATLAB软件简介?
While-end循环以不定的次数求一组语句的值。 Whil-end 循环的一般形式是: while expression(控制表达式) {commands} end 只要在控制表达式(expression)里的所有元 素为真,就执行While和end语句之间的命令 串({commands})。
第五讲matlab句柄绘图和GUI
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
轴对象
窗口对象
线 对 象
面对象
10 0
value of the cosine 1
cos(x)=0.707
0.5
0
线对象
cos(x)
-10 20
轴对象
10
00
-0.5
20
10
-1
-5
0 50
像对象100 150 200
1 0.5
0 -0.5
-1 100 200 300
get(gca,'colororder') ans =
110 101 011 100 010 001
• 设置线条和窗口的颜色 set(h1,'color',[1 0 0]) set(h1,'color',[1 0.5 0])
10
10
9
9
8
8
7
7
6
6
5
5
4
4
3
3
set(gcf,'color',[0.5 0.5 0.5]) set(gcf,'color',[0.5 0.6 0.8])
• 句柄图形:利用底层绘图函数,通过对对象属 性的设置(Handle Graphics)与操作实现绘图。
• 句柄图形是一种面向对象的绘图系统,其中所 有图形操作都是针对图形对象而言的。
• 句柄图形充分体现了面向对象的程序设计。 • 之前介绍的高层图形指令(如plot)都是以句柄
图形软件为基础写成的。也正是这个原因,句 柄图形也被称为底层(Low-level)图形。
MATLAB图形功能
钟培华数学建模基础第 5 讲 MATLAB 图形功能第五讲1.平面图形描绘相关命令 (1) plot 利用点 ( xi特殊函数图形与描绘y i ) i = 1,2,, n 作平面图形调用格式 plot ( x, y, s ) ,其中 x, y 是同维的向量,是设置图形属性的选项。
例 1: x=-pi:pi/10:pi; y=sin(x); plot(x,y,'--r*','linewidth',2,'markeredgecolor','b''markerfacecolor','g') 调用格式:plot(x1,y1,x2,y2,x3,y3)或 plot(x1,y1,s,x2,y2,s…)线型 — : —. —— 实线 虚线 点划线 间断线 . O数据点形状 点 小圆圈 叉号 加号 星号 方格 菱形 朝上三角 朝下三角 朝右三角 朝左三角 五角星 六角星 y m c r g b w k颜色控制 黄色 棕色 青色 红色 绿色 蓝色 白色 黑色×+ * s d∧ ∨> < p h (2)fplot 格式函数利用函数表达式画函数图形 fplot( ‘函数表达式’ x min , x max ]) ,[>> fplot('sin(x)./x',[-0.1,0.1]) % limsin x 存在吗? x →0 x 1 >> fplot('sin(1./x)',[-0.1,0.1]) % lim sin 存在吗? x →0 x>> fplot('sin(1/x)',[-0.1,0.1])3 2思考:化出 f ( x) = ( 2 x − 5) x 的图形,能指出极值点吗?与华师大数学分析(上) P 例 1 图比 143 较,你画对没有? >> fplot('(2*x-5)*(x^2)^(1/3)',[-2,3])补充:ezplot(f,[ x min , x max , y min , y max ] ]1钟培华数学建模基础第 5 讲 MATLAB 图形功能%画出 f(x,y)=0 在 [ x min , x max ] × [Ymin , Ymax ] 上的图形 例如:>>ezplot(‘u^2+v^2=1’,[-2,3,2,3]) %画 u + v = 1 的图2 2如:ezplot(‘x(t)’,’y(t)’,[tmin,tmax]%画 ⎨⎧ x = x(t ) ⎩ y = y (t )t min ≤ t ≤ t max 上的图>> ezplot('2*sin(t)','5*cos9t)',[0,2*pi])%x2 y2 + =1 2 2 52(3)对数图形log log( x, y )%x, y 同时取以 10 为对数再画图semi log x( x, y ) %x 取以 10 为底的对数,y 不变再画图 semi log y ( x, y )%x 不变,y 取以 10 为底对数,再画图x=1:0.1:9;y=x;plot(x,y),pause loglog(x,y,’r*--‘),pause,semilog(x,y,’b+-‘), pause,semilog y(x,y,’k*--‘) (4) >> >> >> >> 极坐标图形 polar( θ , ρ )t=0:0.1:pi;tt=2*sin(t); polar(t,tt); t=0:0.01:2*pi; polar(t,sin(6*t)) % ρ = f (θ )补充:ezpolar(f)θ ∈ [0,2π ]ezpolar(‘f(sita)’,[a,b]) % ρ = f (θ ), a ≤ θ ≤ b >> ezpolar('2*sin(t)',[0,pi]) % ρ = 2 sin(t )t ∈ [0, π ](5) 产生随机数画频数直方图 normrnd 生产符合正态分布的随机数 normrnd(u,v,m,n) %u 表示期望 ,v 表示方差,m 行,n 列 randn %生成标准正态分布数据 rand %生成平均分布数据 >> >> >> >> yn=randn(30000,1);x=min(yn):0.2:max(yn); subplot(121),hist(yn,x); yu=rand(30000,1);subplot(122); hist(yu,25)2钟培华数学建模基础第 5 讲 MATLAB 图形功能(6)画子图 subplot(m,n,p), 221 222 212m,n,p 是三个自然数 121 222 224(7) 用函数 patch 绘填充图 fplot(‘hunps’,[0,2],’b’), hold on patch( [0.5,0.5:0.02:1] [0,humps(0.5:0.02:1),0],’r’] hold off grid on (8)用 fill 来绘制类似的填充图 x=0:pi:2*pi;y=sin(x);plot(x,y,’r’) hold on, x1=0:pi/20:1;y1=sin(x1); fill( [x1,1],[y1,0],’g’) 2、三维图形⎛ 1 2 3⎞ ⎜ ⎟ (1) 绘制 A= ⎜ 4 5 6 ⎟ 的三维饼状图。
matlab教程ppt(完整版)
04
MATLAB绘图与可视化
BIG DATA EMPOWERS TO CREATE A NEW
ERA
绘图基础
散点图
描述数据点在二维平面上的分 布情况。
折线图
展示数据随时间或其他变量的 变化趋势。
条形图
用于比较不同类别数据的数值 大小。
饼图
展示数据中各部分所占的比例 。
三维绘图
三维散点图
在三维空间中展示数据点的分布情况。
信号调制与解调
利用MATLAB实现信号的调制(如 FSK、PSK)与解调,以实现信号的 传输与接收。
控制系统实例
控制系统建模
01
使用MATLAB建立控制系统的数学模型,如传递函数、状态方
程等。
控制系统分析与仿真
02
基于建立的模型,进行控制系统性能分析和仿真,如稳定性分
析、时域和频域响应等。
控制策略设计
循环语句
使用`for`循环和`while`循 环实现重复执行代码块。
流程控制结构示例
演示如何使用条件语句和 循环语句实现矩阵的求和 、求积等操作。
函数编写
01
02
03
04
函数定义
使用`function`关键字定义函 数,指定输入参数和输出参数
。
函数体
在函数体内编写实现特定功能 的代码。
函数调用
通过函数名和输入参数调用函 数,获取输出结果。
通过交叉验证、性能指标等手段 评估模型的性能,并根据评估结
果对模型进行优化和调整。
THANKS
感谢观看
ห้องสมุดไป่ตู้
BIG DATA EMPOWERS TO CREATE A NEW ERA
matlab讲义第五章
在上例中,cellstr命令将字符数组departments转换成 在上例中,cellstr命令将字符数组departments转换成 命令将字符数组departments 异质数组celldata储存,而原先补在字符数组departments celldata储存 异质数组celldata储存,而原先补在字符数组departments 结尾的空格符已被删除,可用length命令验证如下: length命令验证如下 结尾的空格符已被删除,可用length命令验证如下: 显示异质数组celldata >>length(celldata{2}) % 显示异质数组celldata 第2个元素长度 若要将包含字符串的异质数组转换成一般的二维字符数 可用char命令,例如: char命令 组,可用char命令,例如: 异质数组celldata celldata转 >>strdepts=char(celldata) %异质数组celldata转 换成字符数组,结尾补空。 换成字符数组,结尾补空。 strdepts= ee cs econ
第05讲 matlab 绘图
5.2.4 获取二维图形数据的指令
[x,y]=ginput(n)用鼠标从二维图形上获
取n个点的数据坐标 (x,y) 。用enter键来 结束取点。 [x,y]=ginput 取点的数目不受限制 [x,y,button]=ginput(……)返回值 button记录了在选取每个数据点的相关信 息。 【例5.2-9】采用图解法求的解。
Equal 4 2 0 -2 0 -2 -4 -2
Square
0 Image and Box off 2 0 -2 -1 0 1
2
-2
0
2
0 Tight
2
Image and Fill 1 0.5 0 -0.5 -1 -1 0 1 -2 -1 0 2
0
1
三、曲线图中加入文字标识
title(S) 书写图名 xlabel(S) 横坐标轴名 ylabel(S) 纵坐标轴名 legend(S1,S2, ...) 绘制曲线所用线型、色彩或数据点 形图例,legend指令不能正常使用于双纵坐标轴 text(xt,yt,S) 在图面(xt, yt)坐标处书写字符注释 gtext 在鼠标的位置加入字符串
5.2.3 多次叠绘、双纵坐标和多子图
一、多次叠绘 hold on 使当前轴及图形保持而不被刷新,准备接受 此后将绘制的新曲线。
hold off
使当前轴及图形不再具备不被刷新的性质。
hold 当前图形是否具备刷新性质的双向切换开关。 二、单窗口多曲线分图绘图 subplot —— 子图分割命令 调用格式:subplot(m,n,p) —按从左至右,从上至下排列
matlab 绘图
——matlab语言丰富的图形 表现方法,使得数学计算结 果可以方便地、多样性地实 现了可视化,这是其它语言 所不能比拟的。
matlab入门教程(第五章)
指 令 \downarrow \leftarrow \leftrightarrow \rightarrow \uparrow \circ \bullet
符
\exists \forall \in \infty \perp \prime \cdot
字符
\Nu \xi \Xi \pi \Pi \rho
6
\Delta \epsilon
\zeta 指 令 'sin\beta'
效果
\lambda \Lambd a \mu 指 令 '\zeta\omega'
\sigma \Sigma \tau
5
Normal and Grid on 4 2 0 -2 -4 -2 2
Equal 4 2 0 -2 0 -2 -4 -2
Square
0 Image and Box off 2 0 -2 -1 0 1
2
-2
0
2
0 Tight
2
Image and Fill 1 0.5 0 -0.5 -1 -1 0 1 -2 -1 0 2
一 坐标轴的控制
【例 5.2-3】观察各种轴控制指令的影响。演示采用长轴为 3.25,短轴为 1.15 的椭圆。注意: 采用多子图(图 5.2-3)表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽 高比”及“子图数目”的影响。本书这样处理,是出于篇幅考虑。读者欲想准确体会控制指 令的影响,请在全图状态下进行观察。
第五讲 MATLAB绘图
第五讲 MATLAB绘图y 内容 y 画图入门 y 打印图象 y 联合作图 y 图像设置 循 结构( 固) y 循环结构(巩固) y 目的 y 能够进行MATLAB绘图1画图入门y MATLAB的扩展性和机制独立的画图功能是一个极其重要的功能.这个功能使数据画图变得十分简单.画一个数据图, 首先要创建两个向量,由x, y构成,然后使用plot函数。
x=0:1:10; 0 1 10 y=x.^2-10*x+15; plot(x y); plot(x,y);2y 正如我们所看到的,在MATLAB中画图是十分容易的.只要任何 对向量的长度相同,那么它就可以就能可视化地画出 任何一对向量的长度相同 来。
但是这还不是最后的结果,因为它还没有标题,坐标轴 标签,网格线。
y 给图增加标题和坐标轴标签将会用到title, xlabel, ylable函数。
调用每个函数时将会有一个字符串,这个字符串包含了图 象标题和坐标轴标签的信息 用grid 象标题和坐标轴标签的信息。
用 id命令可使网格线出现 或消失在图象中,grid on代表在图象中出现网格线,grid off代表去除网格线。
3给图增加标题和坐标轴标签将会用到title, xlabel, ylable函数。
调用每个函数时将会有一个字符串,这个字 符串包含了图象标题和坐标轴标签的信息。
用grid命令可 使网格线出现或消失在图象中,grid on代表在图象中出现 网格线 grid 网格线, id off ff代表去除网格线。
代表去除网格线 x 0:1:10; x=0:1:10; y=x.^2-10*x+15; plot(x,y); title ('Plot of y=x.^2-10*x+15'); xlabel ('x'); ylabel l b l ('y'); (' ') grid on;4打印图象y 一个图象一旦建立,我们就可以用print命令在打印机上打印出这幅图,也可以单击图象窗口的打印图标或者在文件 印出这幅图 也可以单击图象窗口的打印图标或者在文件 菜单中选择打印项打印。
第五讲 规划问题的matlab计算
但是,输入matlab计算时,应该输入成x1,x2,…,x25的 格式。本题有25个0-1变量且需要约束全部化为小于等 于形式。约束矩阵是20x25的矩阵(为什么?),应 该采用稀疏矩阵的输入方式。
>> clear >> c=[32 17 34 36 25 21 31 21 22 19 24 29 40 28 39 26 35 41 33 29 33 27 31 42 22]; >> A=zeor(20,25);
后者略优于前者bfgs是至今最好的拟牛顿法下面对两种算法作一个计算对比functionfgzuisu2xdfp拟牛顿法计算initialhesstypeidentity初始hesse矩阵用单位阵optionsoptimset?largescale??off??hessupdate??dfp??gradobj??on??maxfunevals?250?initialhesstype??identity??display??iter?
参数输入: Fun: x0: 目标函数,一般用M文件给出 优化的初始点
Options: 参数设置(后面说明)
函数输出:
X:最优点(或最后迭代值) Fval:最后迭代值的目标函数值 Exitflag:函数结束的信息 Oupput:函数基本信息,包括迭代次数,目标函数最 大计算次数,使用的算法名称,计算规模
x =
Ax b, s.t .Qx p , x 0
求解命令: x=linprog(c,A,b,Q,p)
若没有不等式,则令A=[ ],b=[ ]。
例2
例2 求解线性规划
min z 13 x1 9 x2 10 x3 11x4 12 x5 8 x6 ; x1 x4 400, x x 600, 5 2 x3 x6 500, s.t. 0.4 x1 1.1x2 x3 800, 0.5 x4 1.2 x5 1.3 x6 900, x16 0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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