分段函数怎么画图

分段函数怎么画图,第1张

1、打开MATLAB软件,如图所示。

2、建立一个脚本文件,具体方法如图所示。

3、打开的文档中,选择定义变量。

4、建立循环,求解分段函数

5、接下来是结束部分,采用以下指令画图。这样便可以完成所有的分段函数画图。

6、得到的结果如下图:

这是一个很典型的问题哈

问题出在这里:myfun的输入x你是当做单个数字来处理的,而实际你plot(x,myfun(x))里的x是一个数组,所以在myfun的if判断里,只取了第一个元素x(1)做判断,然后用判断的结果来计算所有的x(i)

你要写成这样,我写个简单点的,你自己照着改

x=-1:01:1;

y=x(x>0) - 2 x (x<0)

plot(x,y)

另外,你可以在matlab里输入[1 2 3]>2,来看一下数组和单个数字比大小时,matlab是怎么处理的

你这个程序问题太多了

不推荐使用for循环。

你每得出一组y就画一次曲线,最终得出的是关于t的四条y曲线。

elseif 应该连用,不然每一个if都要一个end,而且else最好和if在不同的行

t到底定义成符号变量还是向量呢?

错误还有很多,任重而道远啊。

建议你先多了解一下语法,我这里按照你的意思编程如下:

clear

clc

%第一、二段

t1=[0:005:5];

y1 = 02(t1>0&t1<=2) + (25t1-48)(t1>2&t1<=5);

plot(t1,y1)

%第三段

t2 = [5:01:8];

syms x t

s=exp(-(x-64)^2/029^2)/(sqrt(2pi)029);

y=52-(825int(s,5,'t')/40)(t-2)/3;

y2 = subs(y,t,t2);

hold on

y2(1) = y1(end);

plot(t2,y2)

%第四段

t3 = [8:002:10];

y3 = 479375ones(1,length(t3));

y3(1) = y2(end);

plot(t3,y3)

图如下:

当然方法不唯一,你可以将你的分段函数定义为m函数,然后再调用求取一组函数值。进行绘图。

close all

[X1,Y1]=meshgrid(-1:005:2,-1:005:2);

X=[ linspace(0,1,10)' linspace(0,1,10)'

linspace(1,2,10)' 1+zeros(10,1)

2+zeros(10,1) linspace(1,2,10)'

linspace(2,-1,30)' 2+zeros(30,1)

-1+zeros(30,1) linspace(2,-1,30)'

linspace(-1,2,30)' -1+zeros(30,1)

2+zeros(10,1) linspace(-1,0,10)'

linspace(2,0,20)' zeros(20,1)

X1(:) Y1(:)];

C=[1:150;[2:150 1]]';

dt=DelaunayTri(X,C);

IO = inOutStatus(dt);

trisurf(dt(IO, :), dtX(:,1), dtX(:,2), zeros(size(dtX(:,1))) )

hold on

trisurf(dt(~IO, :), dtX(:,1), dtX(:,2), exp(-dtX(:,1)+dtX(:,2)) )

hold off

shading interp

function func_baidu_56568133

x=-200:200;

y = (x<0)(x^2+(1+x)^(1/4)+5)

+(x==0)0

+(x>0)(x^2+(1-x)^(1/4)-5);

figure(1);

plot(x,y)

fh = @func_baidu_56568133_inner;

figure(2);

fplot(fh,[-200 200])

function y=func_baidu_56568133_inner(x)

y = (x<0)(x^2+(1+x)^(1/4)+5)

+(x==0)0

+(x>0)(x^2+(1-x)^(1/4)-5);

错误出在,y=015log(01/(1-x))+02表达式少了一个点除“/”

应改成  y=015log(01/(1-x))+02,ok了。

%% 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);

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

原文地址: http://outofmemory.cn/langs/12178723.html

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

发表评论

登录后才能评论

评论列表(0条)

保存