刚买了一本我要买语言启蒙书书怎么感觉好难 有自学高手来教我下

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
后知后觉的一个人!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
4 MATLAB的可视化绘图
4.1 绘制二维图形的基本函数
MATLAB中最常用的绘图函数是plot( )。其基本调用格式为: plot(x, y ),其中x, y均为向量,该函数表示以x向量作为X轴,以y向量作为Y轴。 示例3:绘制从0 ~ 4范围的正弦函数曲线。 t = 0 : pi/20 : 4*y = sin(t);plot(t, y);结果如图1所示。
对于离散序列,MATLAB用stem( )命令实现其绘制。 示例4:绘制从0 ~ 4范围的正弦函数序列。 t = 0 : pi/10 : 4*y = sin(t);stem(t, y);结果如图2所示。
subplot函数
如果要在一个绘图窗口中显示多个图形,可用subplot函数实现。其基本调用格式为:subplot(m, n, k) 或 subplot(m n k),其中m, n, k取值为1 ~ 9。该函数表示将绘图窗口划分为m×n个子窗口(子图),并在第k个子窗口中绘图。 示例5:在一个绘图窗口中绘制下列函数的图形。 (a),0≤t≤2; (b) ,0≤t≤2(c),-4≤t≤4; (d), -5≤t≤5t = 0 : 0.1 : 2;y1 = 2*exp(-3*t); % (a) 指数函数 subplot(221);plot(t,y1);xlabel('(a)');
y2 = 2*t.*exp(-3*t); % (b) t乘指数函数 subplot(222);plot(t,y2);xlabel('(b)');
t1 = -4 : 0.1 : 4;y3 = 1/(2^0.5)*exp(-0.5*t1.^2); % (c) 正态分布函数 subplot(223);plot(t1,y3);xlabel('(c)');
t2 = -5 : 0.1 : 5;y4 = sinc(t2); % (d) 取样函数 subplot(224);plot(t2,y4);xlabel('(d)');ylabel('sinc(t)');axis([-5 5 -0.25 1.1])grid on结果如图3所示。
图3注意:在图3的第4个子图中,我们加了xlabel、 ylabel、axis、grid on等绘图控制命令;这样,用户可根据自己的爱好和需要,对图形进行调整、注释和修饰,得到满意的图形。下面就这一问题做一简单的介绍。
4.2二维图形的修饰
坐标轴名称标识函数xlabel、 ylabel、title
调用格式:xlabel(‘string’), ylabel(‘string’), title(‘string’)通过xlabel、ylabel命令给X轴、Y轴加上名称,标注为字符串string 。 title命令则是给图形加上标题。
坐标轴调整函数axis
调用格式:axis( [xmin xmax ymin ymax] ) 该命令将所画图形的X轴范围限定在xmin到xmax之间,Y轴范围限定在ymin到ymax之间。
加画功能函数hold
若要在原来已有的图形A上加画另外的图形B,而不擦除原有的图形A,只要在画B之前加一条hold on 命令即可;否则原图形A会被B所覆盖。用hold off 可取消加画功能。
坐标网格函数grid
grid函数用于为所绘制的图形添加坐标网格(虚线),从而更方便地确定图中各点的指标位置。grid on 是启动该函数;grid off是关闭该功能;MATLAB的缺省设置是grid off。
曲线的色彩、线型、数据点形
通过在plot、stem函数中加样式控制参数,就可以改变所绘制图形的色彩、线型、数据点形,制作出样式丰富的各种图形。表2给出了常用样式控制参数设置值的含义。 表2 常用样式控制参数设置值及其含义
在图形中加文本标注函数gtext(‘string’)
当执行该命令时,在图中会出现一个十字形指针,用鼠标拖动到需要的地方,然后单击鼠标,即可将字符串添加到图形中。
说明:MATLAB中关于图形修饰的命令很丰富,限于篇幅,这里不再展开。如图例函数legend等。此外,还可通过一些精细指令设置,实现在图上标识希腊字、数学符等特殊字符,以及设置上下标、对字体或大小进行控制。 示例6:将下面三个图形绘制在一个图形窗口中:,,. x = 0:pi/10 :4*plot(x,sin(x),'r+:');y2 = 4*x.*exp(-x);plot(x,y2,'m*-.');plot(x,sin(x)-0.5,'bo-');legend('sin(x)','4xexp(-x)','sin(x)-0.5')axis([0 4*pi -1.6 1.6]);title('示例6'); gtext('正弦函数'); gtext('指数函数');结果如图4所示。
5 常用信号的MATLAB表示
5.1单位冲激函数、单位冲激序列
示例7:t = -5:0.01:5;y = (t==0);subplot(121);plot(t, y, 'r');n = -5:5;x = (n==0);subplot(122);stem(n, x);
运行结果如图5所示。
程序说明: (1)由n = -5:5得到一个1×11数组n;而在x = (n==0)中,n==0是一个向量运算,即向量n中的每一个元素与0比较是否相等,其比较结果0或1放在x中。这样得到的向量x也是1×11数组,且正好就是单位冲激序列。 (2)在MATLAB中,任何向量x的下标是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。因此向量x的下标与时间变量n是两个概念,如本例中向量x(n)的下标是从1到11,而时间变量n是从-5到5。所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。在信号的表示和运算中,这一点请务必注意;只有当序列x(n)的时间变量正好是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。 (3)单位冲激函数的实现方法实际上与单位冲激序列是完全相同的,都是用序列表示。只不过表示连续时间信号的序列中两相邻元素所对应的时间间隔更小,如本例中t的间隔为0.01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。
由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta.m,在后面的实验部分直接调用该函数即可产生需要的波形。
% delta.mfunction [x, n] = delta(n1,n2,k)% 产生冲激序列δ(n-k),其中n1&=n&=n 2, n1&=k&=n2 if nargin ~=3disp('输入不正确,输入参数要有三个!');elseif ((k&n1)|(k&n2)|(n1&n2))error('输入不正确,输入参数要应满足n1&=k&=n2!')endn = n1:n2;x = ((n-k)==0);
5.2单位阶跃函数、单位阶跃序列
只要将前面冲激函数(示例7)中的关系运算“==”改为“&=”,就可得到单位阶跃函数、单位冲激序列,如图6所示。
我们编制了函数文件stepseq.m来生成单位阶跃序列。 function [x, n] = stepseq(n1,n2,n0)% 产生序列u(n-n0),其中n1&=n&=n 2, n1&=n0&=n2
if nargin ~=3disp('输入不正确,输入参数要有三个!');elseif ((n0&n1)|(n0&n2)|(n1&n2))error('输入不正确,输入参数要应满足n1&=k&=n2!')endn = n1:n2;x = ((n-n0)&=0);
示例8:绘图表示 (1) 门函数;(2) 序列。t = -3 :0.05: 3;z1 = ((t+1) &= 0);z2 = ((t-1) &= 0);g = z1 - z2; % 门函数 subplot(221)plot(t,g,'r');axis([-3 3 0 1.1])x1 = stepseq(-5,10,-3); % 调用函数stepseqx2 = stepseq(-5,10,5); % 调用函数stepseqx = x1 - x2;n = -5:10;subplot(222)stem(n,x);axis([-5,10,0,1.1])运行结果如图7所示。
5.3其他典型的信号
实指数信号
其MATLAB实现为:n = n1: n2; x = a.^n;
复指数信号
其MATLAB实现为:n = n1: n2; x = exp(sigma+jw)*n;
正(余)弦信号
其MATLAB实现为:n = n1: n2; x = cos(w*n+sita)
5.4工具箱中的信号产生函数
利用MATLAB信号处理工具箱提供的一些函数,可以很方便地产生三角波、方波等函数波形。
周期性三角波或锯齿波函数sawtooth
调用格式为:x = sawtooth(t, width)功能:产生一个周期为2π、幅度在-1到+1之间的周期性三角波信号。其中width表示最大幅度出现的位置:即在一个周期内,信号从t=0到width×2π时函数值从-1到+1线性增加,而从width×2π到2π又是从+1到-1线性下降。width取值在0 ~ 1之间。 若x = sawtooth(Ωt, width),则对应的周期为2π/Ω。
示例9:产生周期为0.2的三角波,width取值分别为0、1、0.5。 td = 1/100000; % td为时间间隔 t = 0 : td : 1;x1 = sawtooth(2*pi*5*t,0);x2 = sawtooth(2*pi*5*t,1);x3 = sawtooth(2*pi*5*t,0.5);subplot(311); plot(t,x1);subplot(312); plot(t,x2);subplot(313); plot(t,x3);运行结果如图8所示。 图8
周期性方波信号square
调用格式为:x = square (t, duty)功能:产生一个周期为2π、幅度为±1的周期性方波信号。其中duty表示占空比,即在信号的一个周期中正值所占的百分比。 例如产生频率为40Hz、占空比为75%的周期性方波所调用的语句为 x = square (2*pi*40*t, 75);
(非周期)三角波脉冲信号tripuls
调用格式为:x = tripuls (t, width, skew)功能:产生一个最大幅度为1、宽度为width、斜率为skew的三角脉冲信号。该函数横坐标范围由向量t决定,其三角波形是以t=0为中心向左右各展开width/2的范围;斜率skew在-1到+1之间取值,它决定了最大幅度1所对应的横坐标位置:width/2×skew。
示例10:仔细观察由下面代码产生的图9中3个三角波信号之间的区别,自己对tripuls函数的使用做一个总结。 t = -3:0.001:3;x1 = tripuls(t,4,0);subplot(131); plot(t,x1);axis([-4 4 0 1]);gridt = -6:0.001:6;x2 = tripuls(t,4,0.5);subplot(132);plot(t,x2);axis([-4 4 0 1]); gridx3 = tripuls(t+2,4,0.5);subplot(133);plot(t,x3);axis([-4 4 0 1]);grid图9
(非周期)矩形脉冲信号rectpuls
调用格式为:x = rectpuls (t, width)功能:产生一个幅度为1、宽度为width、以t=0为中心左右对称的矩形波信号。该函数横坐标范围由向量t决定,其矩形波形是以t=0为中心向左右各展开width/2的范围。width的默认值为1。
示例11:生成幅度为2,宽度T = 4、中心在t = 0的矩形波x(t)以及x(t-T/2).t = -4 : 0.0001 : 4;T = 4;x1 = 2*rectpuls(t, T);subplot(121);plot(t, x1);axis([-4 6 0 2.2])x2 = 2*rectpuls(t-T/2,T);subplot(122);plot(t, x2);axis([-4 6 0 2.2])运行结果如图10所示。
取样函数sinc 详见示例5。
阅读(6366)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_094067',
blogTitle:'MATLAB精品课程',
blogAbstract:'MATLAB简介 \r\n&&&&在科学研究与工程应用过程中,人们往往会遇到大量繁重的数学运算和数值分析,传统的高级语言如FORTRAN、C等虽然能够在一定的程度上减轻运算量,但它们均要求应用人员具有较强的编程能力和对算法有深入的研究。此外,对大多数科学工作者而言,若要运用这些高级语言对计算结果进行可视化分析以及对计算的图形进行处理,也不是一件轻松的事情。 &&&&MATLAB正是在这一应用要求背景下产生的数学类科技应用软件。它具有强大的数值计算和图形可视化功能、简洁易学的工作环境和编程语言,从根本上满足了高校师生和科技人员对工程计算的要求,将他们从繁重的数学运算中解放出来,现已风靡世界,受到越来越多科技人员的喜爱和欢迎。 \r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'后知后觉的一个人!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 买什么书可以提高语言 的文章

 

随机推荐