怎么用matlab画出下面分段函数的图像?

我写的不知道哪里有错n=-10:1:10;ifn>=-4&n<=-1x=2*n+10;elseifn>=0&n<=4x=6;elsex=0;endendplot(n,x)... 我写的不知道哪里有错
n=-10:1:10;
if n>=-4&n<=-1
x=2*n+10;
else if n>=0&n<=4
x=6;
else
x=0;
end
end
plot(n,x)
求指点 谢谢
想问下我的哪里有问题 有人说下吗- -
展开
 我来答
nc
2014-10-31 · 知道合伙人自然科学行家
nc
知道合伙人自然科学行家
采纳数:17 获赞数:47
CFD,科学计算研究者

向TA提问 私信TA
展开全部

%% forfavonian9


n = -10:1:10;

x = zeros(size(n));

for i = 1:21;

    if n(i) >= -4 && n(i) <= -1

        x(i) = 2 * n(i) + 10;

    elseif n(i) >= 0 && n(i) <= 4

    x(i) = 6;

    else

        x(i) = 0;

    end

end

plot(n,x,'.-')


A = [1 2 3;4 5 6;7 8 9; 10 11 12];

[v,i] = max(A,[],1);


追问
我想问下我的哪里有问题呀?谢谢
追答
  1. n = -10:1:10;这一行决定了n是一个向量,表达式if n>=-4&n<=-1中是把n当作一个标量来处理的,这样就会出错。

  2. x=2*n+10;等同样的道理,如果n为向量则x为向量,如果n为标量则x为标量。所以在plot(n,x)中如果为标量,那么只能描出一个点,如果为向量就能描出一系列的点。

  3. 所以根据你的思路需要用for循环依次进行每一个点的计算,就像我发上来的程序这样,最后两行是粘错的,忽略它们。

希望对你有帮助。

jimtien
推荐于2017-10-02 · TA获得超过7652个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1086万
展开全部

myfun = @(x) (2*x+10).*(x>=-4 & x<=-1)+6.*(x>=0 & x<=4);


n=-10:10;

y=myfun(n);

plot(n,y,'r-o')


本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-31
展开全部

n=-10:1:10;

for k=1:length(n)

    if n(k)>=-4&&n(k)<=-1

        x(k)=2*n(k)+10;

    else if n(k)>=0&&n(k)<=4

            x(k)=6;

        else

            x(k)=0;

        end

    end

end

plot(n,x,'b:*')

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-04-27
展开全部
myfun = @(x) (2*x+10).*(x>=-4 & x<=-1)+6.*(x>=0 & x<=4);
fplot(myfun)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式