怎样用matlab画出这几个函数的图像

怎样用matlab画出这几个函数的图像,第1张

如果是初学,建议使用严格的数值绘图命令,在清楚函数定义域的前提下画图:

clear all;clc;

x=-3:001:3;

y=exp(x);

plot(x,y);grid on;

axis([-3,3,-2,6]);

-------------------------

log(x)这个函数,如果不限定定义域的话,会有复数解的。

clear all;clc;

x=002:001:4;

y=log(x);

plot(x,y);grid on;

axis([-1,4,-6,6]);

MATLAB里面处理的都是离散时间信号,这里可以规定自变量的取值,也就是通常说的采样,我们所能做到的就是尽量用密集的采样点来逼近模拟的连续函数,比如说我要在[-2 2]区间产生1000个点,可以用 x = linspace(-2,2,1000);

或者规定采样频率,比如说1KHz,fs=1000,x=-2:1/fs:2

你的函数RC产生的应该是一个时域离散序列y对吧为了获得时间区间-3T到3T(即6T)的2048个离散点,你要选取适当的采样周期Ts,Ts=6T/2047这样当输入时间序列 t=-3T:Ts:3T时,产生的y就是时域上-3T到3T之间的2048个离散值fft(y)得到变换序列,将其转化成幅度谱和相位谱之后就可以绘图了,这样频谱x轴对应的频率范围是从0到1/Ts,每两个值之间的频率差(即频率分辨率)是1/6T

fh = @( x, y )( 3 cos( sqrt( x^2 + y^2 ) ) - sin( sqrt( x^2 + y^2 ) ) ) / ( 05 + sqrt( x^2 + y^2 ) );

ezsurf( fh, [ -6, 6, -6, 6 ] );   % 如果希望用网络绘制,就改为ezmesh

shading interp;   % 曲面光滑显示

显然是可以的,matlab只是要求plot函数(当然plot3也同理)中x,y数据的长度相同,所以这里和定义域没有半毛钱关系。当然如果你说的是画符号函数,可以用ezplot这个函数,具体用法可以help一下,也可参见http://jingyanbaiducom/article/c85b7a646c78b6003aac955bhtml,这种情况下,你所谓的定义域就是指定xy坐标轴的取值范围。不知道你到底要画什么,所以胡乱答了一通。

除法做错了呗,改为g=1/(1+exp(-z));数值计算除法时与点乘不同,即使分子是常数数字也需要打点,不然就是右除运算,这一般是用不到的。这是常见错误。还可以只用一句即可绘图ezplot('1/(1+exp(-z))',[-10,10]),ylabel('g'),grid on

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12460876.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存