[已答复] 图形绘制

[复制链接]
逝水lcc无痕 发表于 2014-5-24 04:50:18
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

2 条回复


逝水lcc无痕 发表于 2014-5-24 16:31:22
亲,这样不行的,开三次方会有复数,虚部会被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

honglei.chen 发表于 2014-5-24 05:52:20
我建议你把

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)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表