一. 可变输入输出个数
conv()函数可以计算两个多项式的积,利用varargin可以实现任意多个多项式的积。
举例
代码:
clc;clear;
P=[1 2 4 0 5];
Q=[1 2];
F=[1 2 3];%方法一
D1=convs(P,Q,F)
D1_sym=poly2sym(D1)%方法二
D2=conv(conv(P,Q),F)
D2_sym=poly2sym(D2)function a=convs(varargin)
a=1;
for i=1:length(varargin),a=conv(a,varargin{i});
end
end
运行结果:
D1 = 1 6 19 36 45 44 35 30
D1_sym =x^7 + 6*x^6 + 19*x^5 + 36*x^4 + 45*x^3 + 44*x^2 + 35*x + 30
D2 = 1 6 19 36 45 44 35 30
D2_sym =x^7 + 6*x^6 + 19*x^5 + 36*x^4 + 45*x^3 + 44*x^2 + 35*x + 30
二. 几个特殊函数
2.1 inline函数
可以免去文件,格式如下:
fun=inline('函数内容',自变量列表)
例题1
计算:
解:
MATLAB代码:
f=inline('sin(x.^2+y.^2)','x','y');
f(2,3)
运行结果:
ans =0.4202
2.2 匿名函数
f=@(x,y)sin(x.^2+y.^2)
%f=@(变量列表)函数内容
2.3 feval函数
MATLAB提供的feval()函数是用来执行函数操作的函数,故有“函数的函数”之称,格式:
%格式1
[y1,y2,···]=feval(fhandle,x1,···,xn)
y=feval(@sin,2)
%fhandle是函数句柄,函数句柄是一种数据类型,以@引导%格式2
[y1,y2,···]=feval(function,x1,···,xn)
y=feval('sin',2)
%function是函数名
%x1,x2···,xn是输入参数
%y1,y2···,yn是输出参数
举例
clc;clear;
syms t;
f=@(x,y)x^2+y^2;
k1=feval(f,1,t)
k2=f(1,t)
运行结果:
k1 =t^2 + 1
k2 =t^2 + 1
三. 绘制二维图像
已知:
构造向量:
画图格式:
plot(t,y)
曲线的性质,如线型、粗细、颜色等,还可以使用下面的命令进行指定
plot(t1,y1,选项1,t2,y2,选项2,···,tm,ym,选项m)
总结如下常用选项:
曲线线型 | 曲线颜色 | 标记符号 |
'-' | 'b' | '*' |
'--' | 'g' | '.' |
':' | 'm' | 'x' |
'-.' | 'w' | 'v' |
'none' | 'c' | 'hexagram' |
'k' | '>' | |
'r' | 'pentagram' | |
'y' | 'o' | |
'^' | 'square' | |
'diamond' | ||
'<' |
例题2
对以下函数画图:
解:
MATLAB代码:
clc;clear;
x=[-pi:0.05:pi]; %以0.05为步距构造自变量向量
y=sin(tan(x))-tan(sin(x)); %求出各个点上的函数值
plot(x,y)
figure,
plot(x,y,'r-.Pentagram') %红色 划线 每个转折点用五角星表示
运行结果:
四. 特殊命令画图
fplot()函数通过其内部的自适应算法来动态决定自变量的间隔,调用格式:
fplot(fun,limits,LineSpec)
举例
fplot(@(x1)sin(tan(x1))-tan(sin(x1)),[-pi,pi])
运行结果:
函数ezplot无需数据准备,可以画出隐函数。
隐函数:形如f(x,y)=0这种不能写出y=f(x)函数
调用格式:
ezplot(f)
%f是字符串或代表数学函数的符号表达式
举例
代码:
ezplot('sin(tan(x))-tan(sin(x))')
运行结果:
例题3
画图:
解:
MATLAB代码:
clc;clear;%方法一
x=[-2:0.02:2]; %生成自变量向量
y=1.1*sign(x).*(abs(x)>1.1)+x.*(abs(x)<=1.1);
plot(x,y)%方法二
figure,
plot([-2,-1.1,1.1,2],[-1.1,-1.1,1.1,1.1])
运行结果:
五. 图形元素属性获取与修改
图形中,每条曲线、坐标轴、图形窗口分别是一个对象。可用set()函数设置对象的属性,用get函数获得对象的某个属性:
set(句柄,'属性名1',属性值1···,'属性名2',属性值2,···)v=get(句柄,'属性名')
这两个语句在界面编程中很有用。图形句柄和图形之间是一种一一对应的关系,简单来说图形句柄就是指向了这个图形的一个变量,通过它可以设定该图形的各种属性。
句柄是编程的基础,一个句柄是指使用一个唯一的整数值,用于标志应用程序中的不同对象和同类对象中的不同实例,例如一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等,应用程序能够通过句柄访问相应的对象信息。