[Matlab-1]符号函数和数值函数fplot&plot
在matlab里有两种生成函数的方法,一种是数值方法,一种是符号方法。两者都有配套的函数不可以混用,所以对于两种函数的理解显得格外重要
符号函数(symbolic method)
matlab主要是靠syms和sym函数来实现符号函数的生成,但是两者有些稍微的不同
注意到符号函数的打印函数为fplot而不是plot
如果我们要生成sin(pi/4*t)函数
syms t; %define the symbolic variable t
y = sin(pi/4*t); %synbolic function
fplot(y,[-16,16]) %plotting
如果要用sym的话可以这样(并不是很推荐用这个,可能会出一些问题,建议大家用syms)
f = sym('sin(pi/4*t)'); %define symbolic function
fplot(f,[-16,16]); %plotting
数值方法(numerical method)
注意对于数值方法来说我们需要先定义一个区间并且定义步长,因为最终得到的是一组离散的值然后由平滑曲线连接而成的图像。注意使用的是plot函数,与fplot不同是需要带一个自变量,因为fplot里面的表达式自带了自变量。
还是以上面的三角函数的例子为例
t = -5:0.1:5; %define the time range t
y = sin(pi/4*t); %numeric function
plot(t,y) %plotting
一些栗子
阶跃函数
即u(t)=1 , t>=0 u(t) = 0, else
t=-1:0.01:5;
t0=0; ft=(t>=t0);
plot(t,ft);grid on;axis([-1,5,-0.5,1.5]); hold on;
t1=0; ft = stepfun(t,t1);
plot(t,ft, '--'); hold off;
title(' Step function'); xlabel('t'); ylabel('f(t)');
脉冲函数
t = -5:0.01:5;
d = dirac(t);
subplot(2,1,1);
plot(t,d)
syms t
d = dirac(t);
subplot(2,1,2);
fplot(d);
真·三角函数(triangular signal)
ft=tripuls(t,w,s)
w for width
s for skew:-1<s<1
t=-3:0.01:3;
ft=tripuls(t,4,0.5);
plot(t,ft);grid on;axis([-3,3,-0.5,1.5]);
title(' Triangular signal '); xlabel('t'); ylabel('f(t)');
sinc函数
t=-3:0.01:3;
ft=sinc(t);
plot(t,ft);grid on; hold on; axis([-3,3,-0.5,1.2]);
syms t
ft = sinc(t);
fplot(t,ft,[-3 3] ,'--'); hold off;
title(' Sa(t)=sin(t)/t '); xlabel('t'); ylabel('Sa(t)');
小结
这篇我很早就想写了,因为分清楚数值函数和符号函数真的对初学者非常重要。否则在看一些matlab代码时候会不清楚不同函数写法版本的区别,甚至出现混用的情况。希望这一章能给大家的学习带来帮助。最近准备秋学期去UCB的一些事情,之后估计有的忙了,不知道能不能给大家更新。不过我会尽量保持更新,因为写博客已经变成我的一种解压方式了,并且分享知识也是一件值得快乐的事情
版权声明:本文为Cplus_ruler原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。