MATLAB语言数据类型
变量
符号型数据用于公式推导和数学问题解析解法,使用syms()函数
例如:syms a b;
字符串
字符串的定义:
1.直接用单引号赋值:s1=‘I love matlab’
2.利用char()函数结合ASCII码:s2=char([73 32 108 111 118 101 32 109 97 116 108 97 98])
3.字符数组生成字符串:s3=[‘I’, ’ ‘,‘l’,‘o’,‘v’,‘e’,’ ‘,’ ',‘m’ ,‘a’,‘t’,‘l’,‘a’,‘b’]
字符串拼接:用[ ]进行拼接,注意里边,和;的区别
用strcat()和strvcat()函数进行水平和垂直拼接。
元胞与结构
元胞数组:
定义:1.赋值语句,2.用cell()函数预先分配存储空间
调用:1.通过将索引括在圆括号 () 中可以引用元胞集;2.使用花括号 {} 进行索引来访问元胞的内容。
S2N:str2int, str2num, str2mat, sscanf
N2S: int2str, num2str, mat2str, sprintf
数值运算
矩阵运算
输入方法:
1.输入元素列表a=[1 2 3;3 4 5;4 5 6]
2.从外部数据文件中读取矩阵:load data.mat
3.内部函数和工具箱函数a=eye(4)
4.编写语句
代数运算:’ + - * / \ ^ .
逻辑云端:& | ~ xor
关系运算:==,~= ,> , < ,<= , >=
多项式运算
poly2sym(C,‘V’)
poly2str(C,‘V’)
C:多项式系数向量,降幂排列
V:指定变量,前者默认为x,后者必须指定。
基本运算:+,-,conv(乘),deconv(除),polyder(微分),polyint(积分),polyval(估值),roots(求根)。
复数运算
复数绘图:plot,polar
运算:real,imag,abs,angle,conj
留数运算
c=limit(F*(z-z0),z,z0) 单奇点
c=limit(diff(F*(z-z0)^m,z,m-1)/prod(1:m-1),z,a) m重奇点
prod连乘
符号运算
符号微积分
符号极限:limit()
调用:limit(F,x,a)或limit(F,x,a,‘right’或’left’)
F极限表达式,x为符号自变量,提前用syms x声明,right和left是单边极限
符号导数:diff()
调用:dF=diff(F,x,n)
符号积分int()
I=int(f,x)求不定积分
I=int(f,x,a,b)求不定积分
符号级数
taylor级数展开
单变量函数Taylor展开taylor():
r=taylor(f,x,n,a),单变量中x可以省略,n默认为6
多变量函数taylor展开mtaylor():
T=maple(‘mtaylor(f,[x1,x2,x3,…,xn],n’)原点
T=maple(‘mtaylor(f,[x1=a1,x2=a2,x3=a3,…,xn=an],n’)任意点
fourier级数展开
级数求和
symsum()函数用于求解已知通项的有穷或无穷级数的和
调用:r=symsum(s,v,a,b)
s通项,v级数自变量,a,b起点终点,可为inf,s中只有一个变量,可以省略v
符号积分变换
fourier变换
fourier()和ifourier()
调用:Fw=fourier(ft,t,w)和ft=ifourier(Fw,w,t)
laplace变换
laplace()和ilaplace()
调用:Fs=laplace(ft,t,s)和ft=ilaplacer(Fs,s,t)
Z变换
ztrans()和iztrans()
调用:FZ=ztrans(fn,n,z)和fn=iztrans(FZ,z,n)
符号方程求解
符号代数方程求解
线性方程,非线性方程,超越方程均可用solve()求解
调用:
S=solve(eqn1,eqn2,…eqnn,‘v1,v2,…,vn’)其中S是结构数组,要显示出显示解S.vi
[x1,x2,…,xn]=solve(eqn1,eqn2,…eqnn,‘v1’,‘v2’,…,‘vn’)
符号微分方程求解
用dsolve()函数求解有解析解的微分方程
sols=dsolve(‘eq1,eq2,…’,‘cond1,cond2,…’,‘v’)
eq微分方程组的表达式,cond初始条件,v符号自变量,缺省为t。
程序控制结构
顺序结构
数据输入input()
user_enter=input(‘prompt’)
user_enter=input(‘prompt’,‘s’)
prompt为提示信息,s用于指定输入内容为一个字符串
数据输出disp()
disp(X)
选择结构
条件语句if…end
开关语句switch
switch 开关表达式
case 表达式1
语句组1
case 表达式2
语句组2
otherwise
语句组m
end
循环结构
for语句
for 循环变量=V
循环体语句
end
while语句
while(条件)
循环体语句
end
试探结构
try
语句段1
catch
语句段2
end
试探性执行语句段1,出现错误后执行语句段2
递归结构
M文件
M脚本文件中变量均为全局变量
M函数文件
function[输出变量列表]=函数名(输入变量列表)
注释说明部分
函数体语句
return
特殊函数
inline()函数
匿名函数
feval()函数
图形绘制
二维图像
plot(),semilogx(),semilogy(),loglog()
调用
plot(Y)
plot(X,Y,LineSpec,…)
plot(X,Y,‘PropertyName’,PropertyValue,…)
三维图像
三维曲线图绘制
plot3()和line()调用同上
三维网格图绘制
mesh()函数和surf()函数(课绘制着色表面图)
mesh(Z)
mesh(X,Y,Z)
mesh(X,Y,Z,C)
mesh(X,Y,Z,‘PropertyName’,PropertyValue,…)
图像修饰
图形标注
使用text()和gtext()进行坐标轴窗口标注
text(x,y,‘string’)
text(x,y,z,‘string’)
text(x,y,z,‘string’,‘PropertyName’,PropertyValue)
gtext(‘string’)
gtext(‘string1’,‘string2’,‘string3’,…)
其中,x,y,z是标量或长度相等的向量,string是要添加的字符串
使用legend()进行图例添加
legend(‘string1’,‘string2’,‘string3’,…)
legend(h,‘string1’,‘string2’,‘string3’,…)
legend(‘mode’)或legend mode或legend(axes_handle,‘mode’)
legend(…,pos)
使用xlabel(ylabel和zlabel)进行坐标轴标注
xlabel(string,‘PropertyName’,PropertyValue,…)
PropertyName和PropertyValue是设置的树形及树形的值,成对出现,常见的有字体,字号
使用title()进行标题添加
title(string,‘PropertyName’,PropertyValue,…)
使用annotation()进行基本图形绘制
annotation(annotation_type,x,y)
annotation(…,‘PropertyName’,PropertyValue,…)
图形编辑
主要通过set和get函数实现精细图形绘制。用于查询和设置相关属性。
returned_value=get(object_handle,‘PropertyName’)查询句柄为object_handle的图形对象元素PropertyName属性取值。
set((object_handle,‘PropertyName’,NewPropertyValue)将句柄为object_handle的图形对象元素的PropertyName属性设置为NewPropertyValue。
函数绘图
fplot()函数
fplot(fun,limits,LineSpec)
fplot(fun,limits,tol,LineSpec)
fplot(fun,limits,n)
fplot(fun,limits,tol,n,LineSpec,p1,p2)
fun为需要绘制曲线的函数名称,limits,表示坐标轴取值范围:[xmin,xmax]和[xmin,xmax,ymin,ymax],tol表示函数相对误差精度,默认为2e-3,n表示最少绘图点为n+1,默认为1,LineSpec用于指定曲线的线型,颜色和标记符号。
ezplot()函数
ezpolt(fun,[min,max])
ezpolt(fun,[xmin,xmax,ymin,ymax])
ezplot(funx,funy,[tmin,tmax])
ezplot(…,figure_handle)
figure_handle是指定的图形窗口
三位曲线使用ezplot3()
ezplot3(funx,funy,funz,[tmin,tmax],‘animate’)
ezcontour()函数
ezcontour(fun,domain)
ezcontour(fun,domain,n)
n默认为60
专用图形绘图
条形图
bar(),bar3()(竖直)
barh(),bar3h()(水平)
bar(Y)
bar(x,Y)
bar(…,width)
bar(…,‘style’)
bar(…,‘bar_color’)
bar(…,‘PropertyName’,PropertyValue,…)
style:grouped和stacked
面积图
area(Y)
area(X,Y)
area(…,basevalue)
area(…,‘PropertyName’,PropertyValue,…)
饼图
pie(X)
pie(X,explode)
pie(…,labels)
用pie()和pie3()绘制二维和三维饼图,explode与x维数相等
举例
fplot([x^2,2-x^2],[-2 2 -0.5 2.5])%绘制曲线图
text([-1.4,-1.4],[2,0.05],{'\leftarrowy=x^2','\leftarrowy=2-x^2'})%添加标注
A=double(solve(x^2-(2-x^2)))%将符号型结果转换为浮点型
hold on
xn=linespace(A(1),A(2),100)
fill([xn,fliplr(xn)],[xn^2,fliplr(2-xn^2),'b'])%填充积分区域
syms x y;
I=int(int(x^2,y,x^2,2-x^2),x,min(A),max(A))%嵌套调用求解重积分