matlab函数相加

来源:百度知道 编辑:UC知道 时间:2024/06/09 19:38:45
这是我自定义的函数:
%阶跃函数
function y=jmp(t)
%在t处跳变
y=@(x)(x>=t);

我这样调用:
a=jmp(-2)+jmp(-1)-jmp(1)-jmp(2);
t=-4:4;
ezplot(a,t)

结果报了这样的错:
??? Undefined function or method 'plus' for input arguments of type 'function_handle'.

小弟初学,请高手指教
我确实是定义了jmp.m的函数,想画一个阶跃函数,在命令窗中输入a=jmp(0);t=(-4:4);ezplot(a,t)确实可以得到想要的图像,但是用plot却错误。不是很理解ezplot和plot的区别。
而a=jmp(-2)+jmp(-1)-jmp(1)-jmp(2)的错误还是没有理解
小弟其实想画的是一个类似于凸字形的图形,还请各位大侠不吝赐教

不用那么复杂:

clc;clear
t=-4:4
jmp=@(x)(x>=t);
a=jmp(-2)+jmp(-1)-jmp(1)-jmp(2)
plot(t,a)
axis([-4 4 -3 1])

结果是一个水渠形状的东东。 图形见:
http://hi.baidu.com/chemical%5Fengineering/album/item/99f87f3e32e8eb1571cf6c9c.html

a是一个值 t是矩阵怎么plot?

%阶跃函数
function y=jmp(t)
%在t处跳变
y=@(x)(x>=t);
上面这以段应该保存为jmp.m文件,然后在命令窗口输入
a=jmp(-2)+jmp(-1)-jmp(1)-jmp(2);
t=-4:4;
ezplot(a,t)
就可以了

同意三楼的说法,二楼的方法运行后和你的结果是一样的,都是一样的错误,这主要是函数调数返回的是函数的句柄值,而这在一环结不能直接相加,不如直接编辑函数。三楼方法可行。