楼主你这个题目有点怪啊,这样的话如果b如果是这样,你可以用三个for循环生成x和u的数组,然后plot画图就行了
clear
clc
clf
% ========给定初始值a,b;并得到函数u(x)==============
a=2;
b=7;
lim=max([a,b,1]);
x=0:0.1:1.5*lim;
ux=zeros(1,length(x));
for kk=1:length(x)
if x(kk)>=0 && x(kk)<=a;
ux(kk)=1;
elseif x(kk)>a && x(kk)<=b;
ux(kk)=(b-x(kk))/(b-a);
else
ux(kk)=0;
end
end
% =========绘图============
plot(x,ux,'r','Linewidth',2)
set(gca,'XLim',[0 1.5*lim],...
'XTick',[a,b],...
'XTicklabel',('a|b'),...
'YLim',[0 1.5],...
'YTick',1)
Xlabel('x')
Ylabel('u(x)')
===end===========
y轴没有设ab,因为函数最大值为1,如果ab初始设得比较大,反而会乱,所以只标注了1。如果一定要加ab,请设置合适值,在set语句下参考X轴 修改 YTick 并添加一行Yticklabel