1 @定义数学函数表达式
语法:f=@(变量1、变量2、、)(函数表达式);
% @定义数学函数表达式
clc,clear
f=@(x,y)(x+y);%函数
a=f(1,2)
a =
3
注意:如果输入变量是向量或矩阵 ,则函数表达式中必须用点运算,如 .^ ./ 等。
2函数表达式嵌套
clc,clear
f=@(x)(x+1);%函数
f2=@(x)(2*f(x));
a=f2(1) %加1乘2
a =
4
3 @与sym类型表达式结合
例:计算传递函数F(s)对应s的值。
clc,clear
format rat %分数表示
syms t s
f = t; %f(t)=t
F=laplace(f) %拉斯变换
f=@(x)(double(subs(F,'s',x))); %符号变量s替换为变量x
a=f(2)
F =
1/s^2
a =
1/4
4 function函数返回@句柄
参数n=1时函数返回表达式y=x的句柄,参数n=2时函数返回表达式y=x^2的句柄。
clc,clear
f1=f(1);
a=f1(2)
f2=f(2);
b=f2(2)
function fx=f(n)
%返回函数
if n==1
fx=@(x)(x);%一次函数y=x
elseif n==2
fx=@(x)(x.^2);%二次函数y=x^2
else
fx='NaN';
end
end
a =
2
b =
4
5分段函数
编写分段函数程序
5.1直接编写(不推荐)
利用逻辑索引。
clc,clear
close
x=-1:0.1:1;
y=f(x);
plot(x,y)
axis equal
axis([-1.2 1.2 0 1.2])
grid on
xlabel('x')
ylabel('y')
title('分段函数')
saveas(gcf,'plot.png')
function y=f(x)
%分段函数
x0=0;%分段点
ix1=x<=x0;%左段
ix2=x>x0;%右段
y=zeros(1,length(x));
y1=-x;
y2=x;
y(ix1)=y1(ix1);
y(ix2)=y2(ix2);
end
5.2用@和逻辑向量
利用逻辑向量与数字向量进行算术运算。
clc,clear
f=@(x)((x<0).*-x+(x>=0).*x);
x=-1:0.1:1;
y=f(x);
plot(x,y)
axis equal
axis([-1.2 1.2 0 1.2])
grid on
xlabel('x')
ylabel('y')
title('分段函数')
saveas(gcf,'plot.png')
两个逻辑向量进行与或运算用&和|,注意&&和||不能进行向量运算。
clc,clear
close
f=@(x)((x>=0 & x<=1).*1);
x=-2:0.01:2;
y=f(x);
plot(x,y)
% axis equal
axis([-2 2 0 1.2])
grid on
xlabel('x')
ylabel('y')
%saveas(gcf,'plot1.png')