matlab 用if编简单的 分段函数

发布网友

我来回答

3个回答

热心网友

比如这个例子:

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、点击运行,即可以得到分段函数的图像了:

热心网友

!!!应该是这样的结果吧!!!!

程序如下:
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

热心网友

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)
你看看结果吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com