matlab 用if编简单的 分段函数

function [Y]= thli(X)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
%x = 0:0.1:1
if X<=0.1
Y=1000*X;
end
if X>0.1 && X<=0.2
Y=2*50000*(X-0.1)+100;

end
if X>0.2 && X<=0.25
Y=50*50000*(X-0.2)+2*50000*0.1+100;
end
if X>0.25
Y=100;
end
end
总是出错:??? Input argument "X" is undefined.

Error in ==> thli at 5
if X<=0.1
求高手帮忙,谢谢啦;
谢谢你的帮忙,不过结果运行怎么基本是0啊。
ans =
Columns 1 through 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 17 through 32
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 33 through 48
0 0 0 0 0

比如这个例子:

1、打开MATLAB软件,粘贴以下代码:

clc; clear all

x=0:0.01:10;

y=sqrt(x).*(x>=0&x<4)+2*(x>=4&x<6)+(5-x/2).*(x>=6&x<8)+1*(x>=8);

plot(x,y,'r','linewidth',2)

axis([0 10 0 2.1])

grid on

解释一下,代码的逻辑运算符是这个程序成败的关键,利用了判断逻辑数和向量之间的相乘,构造分段函数的表达式.

2、点击运行,即可以得到分段函数的图像了:

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-09
!!!应该是这样的结果吧!!!!

程序如下:
function y= thli(x)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
%x = 0:0.1:1
if x<=0.1
y=1000*x;
elseif x>0.1
y=2*50000*(x-0.1)+100;
elseif x<=0.2
y=2*50000*(x-0.1)+100;
elseif x>0.2
y=50*50000*(x-0.2)+2*50000*0.1+100;
elseif x<=0.25
y=50*50000*(x-0.2)+2*50000*0.1+100;
elseif x>0.25
y=100;

end本回答被提问者采纳
第2个回答  2009-12-25
function [y,x]= thli(x)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
if nargin==0
x = 0:0.01:1;
end
for i=1:length(x)
X=x(i);
if X<=0.1
Y=1000*X;
end
if X>0.1 && X<=0.2
Y=2*50000*(X-0.1)+100;

end
if X>0.2 && X<=0.25
Y=50*50000*(X-0.2)+2*50000*0.1+100;
end
if X>0.25
Y=100;
end
end
y(i)=Y;
end

%%%%%%%%%%%
调用一下啊!
我是这样用的。
[y,x]= thli();plot(x,y)
你看看结果吧

MATLAB如何用if自定义分段函数
1、与建立M文件类似,在命令窗口中输入edit。2、编写函数,需要注意函数命名规则,注释部分可有可无,用%开始。3、编写完成后保存文件,最好保存在当前工作路径的文件夹。4、直接输入函数名,形参,就能返回计算结果。5、和查看其它函数说明一样,输入“help 函数名” 就能看到这个函数的注释说明。

matlab 画分段函数!!!
用if实现 x=-4:0.1:4;y=-4:0.1:4;if x>=0 if y>=0 f=(x+y); end else f=x+y.^2; end if x<0 if y>=0 f=x.^2+y; end else f=x.^2+y.^2; endplot3(x,y,f)grid on 用逻辑实现 x=-4:0.1:4;y=-4:0.1:4;f=(x+...

Matlab 分段函数 画图
if (x1<-1 & x1>-3)y(i)=((-x1.^2)-(4*x1)-3)\/2;elseif (x1<1 & x1>-1)y(i)=-x1.^2+1;else y(i)=((-x1.^2)-(4*x1)-3)\/2;end end plot(x,y,'r*-');希望可以满足你的要求!

怎么用matlab表达分段函数
if(0<=t(i)<1)z(i)=t(i)^2 ;elseif(1<=t(i)<2)z(i)=t(i)^2 -1 ;elseif(2<=t(i)<3)z(i)=t(i)^2 -2*t(i) +1 ;end end

怎么用matlab表达分段函数
用if语句就可以了,方便的话把具体表达式给出吧,具体问题欢迎探讨!t=0:0.5:2.5;len=length(t);for i=1:len if(0<=t(i)<1)z(i)=t(i)^2 ;elseif(1<=t(i)<2)z(i)=t(i)^2 -1 ;elseif(2<=t(i)<3)z(i)=t(i)^2 -2*t(i)+1 ;end end ...

这个图里的分段函数怎么用matlab的if语句编写,同时plot他的一阶倒数...
if t(i)<=0.125 s(i)=pi*(t(i)-sin(4*pi*t(i))\/(4*pi))\/(4+pi);elseif (0.125<t(i))&(t(i)<0.875;)s(i)=pi*(t(i)+2\/pi-9*cos(4*pi*t(i)\/3-pi\/6)\/(4*pi))\/(4+pi);else s(i)=pi*(t(i)+4\/pi-sin(4*pi*t-2*pi)\/(4*pi))\/(4+pi);end...

matlab 分段函数写法 非常简单 急用 r(k)=1 x>0且x<2000 r(k)=2 x...
参考下面代码和示例:>> r = @(x) 1*(x>0&x<2000) + 2*(x>2000&x<4000);>> r(1000)ans = 1>> r(2005)ans = 2

请教各位怎样用matlab定义一个分段函数
常规方法:使用if...else...语句定义不同的分支 推荐方法:使用逻辑表达式将不同分支写成一个完整的函数表达式 下面进行举例说明:在matlab中定义如下分段函数 1、常规方法:1 2 3 4 5 6 7 8 9 function y = fun(x)if(x<1)y = x;elseif(x<2)y = x^2;else y = x^3;end return 2...

如何求matlab的分段函数?
如果函数只分了两段的话可以用switch模块,如果分三段的话可以用if模块,但是使用if模块的时候需要跟merge模块以及If Action Subsystem模块结合,还有一种方式就是用matlab fcn模块,如图所示:例子:已知函数f(x)= 求f(3)的值。解:由3∈(-∞,6),知f(3)=f(3+2)=f(5),又5∈(-∞,6...

matlab这个题怎么写
该函数为分段函数,如用if结构来做,可以按下列格式来写。x=-10:0.5:10;for i=1:length(x)x0=x(i);if x0<-1 y0=-x0.^2-1;y(i)=y0;plot(x0,y0,'k.'),hold on elseif x0>=1 y0=x0.^2-1;y(i)=y0;plot(x0,y0,'m.'),hold on else y0=0;y(i)=y0;plot(x0...

相似回答