拍摄关于x = a的函数的图像

时间:2013-06-11 12:00:55

标签: matlab matlab-figure

我是编程和MATLAB的初学者。 问题: 我有一个从0到a的函数f(x)。我需要在x = a上反映这一点,以便区域a中的图形

x =0:16/100:16;
if all(x<8)
    m = 0.00003 + 0.00002./((cos(pi/4)./sinh(0.5*log(0.5*x)))+coth(0.5*log(0.5*x)));
end
if all(x>8)
    p = 0.00003 + 0.00002./((cos(pi/4)./sinh(0.5*log(0.5*(16-x))))+coth(0.5*log(0.5*(16-x))));
end
z = m + p ;
plot(x,z);grid on

但是,x是一个数组。 我该如何解决这个问题? 我是新手所以请指出我的错误。我很乐意进一步澄清。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

矢量化!

z = ( x <= 8 ) .* ... % select the first part
    (  0.00003 + 0.00002./((cos(pi/4)./sinh(0.5*log(0.5*x)))+coth(0.5*log(0.5*x))) ) + ...
    ( x > 8 ) .* ... % select second part
    (  0.00003 + 0.00002./((cos(pi/4)./sinh(0.5*log(0.5*(16-x))))+coth(0.5*log(0.5*(16-x)))) ) ;

plot( x, z );

答案 1 :(得分:0)

我们假设f是一个数组,其中包含从0到a的函数值,对应于参数x。然后,你可以这样做:

f1=[f f(end:-1:1)];
x=[x x(end)+x+x(1)];
plot(x,f1)