MATLAB 这个程序为什么没按照我写的这个分段函数运行呢

img

img


算出来的这个f(x)函数应该大于6之后都是0.5吧,这怎么回事?

elseif是比第一个if低一级的条件判断,而之后的else是和第一个if平级的,也就是只判断是否大于2,而不是判断大于2是否小于6。若x大于2小于6,即便中间的elseif后会给y赋成0.5,到最后的else还是执行与if成配套的条件判断,只要大于2就会按else后的命令执行。根据你的分段函数,matlab中可以直接这么写:y = (0.5x).(x<=2)+(1.5-0.25*x).*(x>2&x<6)+0.5.*(x>=6);,复制到函数中即可,注意点乘。