MATLAB中文论坛

标题: 图形绘制 [打印本页]

作者: 逝水lcc无痕    时间: 2014-5-24 04:50
标题: 图形绘制
function y=F(x)
a=0.35;
b=3.48;
c=0.32;
if x>=0
    y=a.*(x-b).^(1/3)+c;
else
    y=0;
end
end
怎么画出这个函数的图像?求助!!!:lol


作者: honglei.chen    时间: 2014-5-24 05:52
我建议你把

if x>=0
    y=a.*(x-b).^(1/3)+c;
else
    y=0;
end

改成

y = zeros(size(x));
y(x>=0) = a.*(x(x>=0)-b).^(1/3)+c;

这样你的程序就可以用来输入一个向量,画图就可以比较简单象

x = -5:0.5:5;
y = F(x);
stem(x,y)
作者: 逝水lcc无痕    时间: 2014-5-24 16:31
亲,这样不行的,开三次方会有复数,虚部会被plot函数舍去,不过我找到了新方法,你也可以学习一下:
%%    %制作权变函数图

a=0.35;
b=3.48;
c=0.52;
x1=0:0.01:3.48;%分段
x2=3.48:0.01:6;   
y1=-a.*(abs(x1-b)).^(1/3)+c;%方根负数段会产生复数解,得先求模
y2=a.*(x2-b).^(1/3)+c;  %正常计算  
x=[x1 x2]; %合并
y=[y1 y2];
figure
plot(x,y)
title('权变函数图')
grid on




欢迎光临 MATLAB中文论坛 (https://www.ilovematlab.cn/) Powered by Discuz! X3.4