matlab总结Word格式.docx
- 文档编号:19187559
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:17
- 大小:639.58KB
matlab总结Word格式.docx
《matlab总结Word格式.docx》由会员分享,可在线阅读,更多相关《matlab总结Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
常量
常量的功能
ans
用作结果的默认变量名
nargin
函数的输入参数个数
beep
使计算机发出“嘟嘟”声
nargout
函数的输出参数个数
pi
圆周率
varagin
可变的函数输入参数个数
eps
浮点数相对误差
varagout
可变的函数输出参数个数
inf
无穷大
realmin
最小的正浮点数
NaN或nan
不定数
realmax
最大的正浮点数
i或j
复数单位
bitmax
最大的正整数
2.4常用函数
函数名
功能
常能
sin
正玄
log10
以10为底对数
asin
反正玄
rem
无符号求余
cos
余弦
sqrt
平方根
acos
反余弦
abs
模
tan
正切
atan
反正切
exp
指数
cot
余切
log
对数
acot
反余切
函数使用说明:
(1)三角函数以弧度为单位计算。
(2)abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。
(3)用于取整的函数有fix、floor、ceil、round,要注意它们的区别。
Fix向0舍入;
floor向负舍入;
ceil向正舍入;
round四舍五入
(4)rem与mod函数的区别:
rem无符号取余(结果为正),mod有符取余(结果可能为负)
3.1向量的生成方法
(1)在命令窗口中直接输入向量,用空格或逗号生成行向量;
用分号生成列向量。
(2)等差元素向量的生成,可以使用冒号(:
)和linspace函数来生成等差元素向量
vec1=start:
d:
endlinspace(start,end,N)
其中linspace(a,b,n)与a:
(b-a)/(n-1):
b等价
3.2向量与数的四则运算
3.2.1向量与数的四则运算
向量中的每个元素与数的四则运算
3.2.2向量与向量之间的加减运算
向量中的每个元素与另一个向量中相对应的元素的加法(减法)运算
3.2.3点积、叉积和混合积
点积,维数必须相同.a=dot(x1,x2)等价于sum(x1.*x2)
叉积,向量维数只能为3,c=cross(a,b),其中a,b的维数只能为3
向量的混合积的几何意义是它的绝对值表示以向量为棱的平行六面体的体积
3.3矩阵及其运算
3.3.1矩阵的生成
在命令窗口中直接输入矩阵:
a=[1,2,3;
4,5,6;
7,8,9]
在M文件中建立矩阵:
就是在M文件中写入矩阵之后,再运行m文件
通过语句和函数产生矩阵冒号语句和linspace函数产生矩阵
从外部的数据文件中导入矩阵文本文件可以用load加载;
3.3.2矩阵的基本数值运算
1.基本算术运算
MATLAB的基本算术运算有:
+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。
注意:
运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。
2.点运算
点运算符有.*、./、.\和.^。
两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。
3.MATLAB常用数学函数
A=Rand(m,n)产生m行n列的随机矩阵,其元素取值为0~1
A=Ones(m,n)产生m行n列的矩阵,其元素全为1。
Zero函数同理
4.矩阵的四则运算
(1)矩阵加、减(+,-)运算
相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。
允许参与运算的两矩阵之一是标量。
标量与矩阵的所有元素分别进行加减操作。
(2)矩阵乘()运算
A矩阵的列数必须等于B矩阵的行数
标量可与任何矩阵相乘。
(3)矩阵除(\,/)运算
矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种矩阵除运算:
\(左除):
A\B表示A左除B;
/(右除):
A/B表示B右除A
设A是可逆矩阵的运算,AX=B的解是A左除B,即X=A\B;
XA=B的解是A右除B,即X=B/A
(4)矩阵乘方(^)运算
A^p——A自乘p次幂
Ø
设A为方阵,p为正整数,则A^p表示A自乘p次;
若A为方阵且非奇异,p为正整数,A^(-p)表示A的逆自乘p次。
若A,p都是矩阵,A^p则无意义。
(5)矩阵开方、指数、对数运算
sqrtm()-矩阵的开方函数expm()-矩阵的指数函数
logm()-矩阵的对数函数inv()-矩阵的逆运算函数
特征参数的运算:
det求矩阵所对应的行列式的值rank求矩阵的秩trace求矩阵的迹
5.数组及其运算
(1)数组寻址和排序
数组寻址(取值)是通过数组名+(序号1:
序号2:
……序号n)
排序是用函数sort实现,sort(X,1)表示数组X每列内元素排序
sort(X,2)表示数组X每行内元素排序
(2)数组乘除(,./,.\)
ab——a,b两数组必须有相同的行和列两数组相应元素相乘
(3)数组的关系运算
小于(<
)、小于等于(<
=)、大于(>
)、大于等于(>
=)、等于(==)和不等于(~=)如果结果为1,则表明关系式为真
(4)数组的逻辑运算
有3种逻辑运算:
与(&
)、或(|)和非(~)
对于数组(矩阵),逻辑运算是针对于数组(矩阵)中的每一个元素。
同样,当逻辑为真时,返回值为1
4.1M文件的基本属性
M文件有两种,一种为脚本式(Script),一种为函数式(Function)。
。
prod(1:
n)是求阶乘的函数
函数M文件必须满足一些标准,
函数式M文件名和出现在文件的第一行的函数名必须相同.函数
⏹函数式M文件一般都要自带参数,并且有返回结果。
⏹函数式M文件的第一行都是以function开始,说明此文件是一个函数。
函数式M文件中的变量都不是全局变量,仅在函数运行期间有效,函数运行完毕之后,它所定义的变量将从工作区间中清除。
脚本式没有函数名,函数式有函数名,一般要自带参数,返回结果
函数文件由function语句引导,其基本结构为:
function[输出形参表]=函数名(输入形参表)
注释说明部分
函数体语句
4.2数据的输入输出
input函数
调用格式为:
A=input(提示信息,选项);
其中提示信息为一个字符串,用于提示用户输入什么样的数据。
A=input('
A='
)
如果在input函数调用时采用'
s'
选项,则允许用户输入一个字符串。
例如,想输入一个人的姓名,可采用命令:
xm=input('
What'
syourname?
'
'
disp函数
调用格式为:
disp(输出项)
其中‘输出项’既可以为字符串,也可以为矩阵。
注意:
用disp函数显示矩阵时将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行。
fprintf函数,其调用格式为:
fprintf(‘xxxxxxx%d%f%s’,a,b,c)
4.2程序控制
⏹最简单的程序控制就是顺序结构,用户依次输入命令语句即可。
⏹MATLAB7语言还提供了4种高级的控制结构。
它们是:
if-else-end结构、switch-case-otherwise-end结构、for循环和while循环。
顺序结构
选择结构
1.单分支if语句
语句格式为:
if条件
语句组
end
2.双分支if语句
if条件
语句组1
else
语句组2
End
3.多分支if语句
语句格式为:
if条件1
elseif条件2
……
elseif条件m
语句组m
else
语句组m+1
end
分支语句
其语句格式为:
switch表达式
case表达式1
……
case表达式m
otherwise
for循环语句
for循环变量=初值:
增量:
终值
循环体语句
for更一般的表达式
for循环变量=矩阵表达式
执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。
实际上,“初值:
终值”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。
while语句
while语句的一般格式为:
while(条件)
其执行过程为:
若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环
break语句,当在循环体内执行到该语句时,程序跳出循环。
程多重循环中,序将只能跳出包含它的最内层的那个循环。
Continue语句与break语句不同,使用continue后,系统不执行相关执行语句,但不会跳出当前循环(跳出本次循环)。
pause(延迟秒数)
如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。
pause命令在程序调试以及需要看中间结果时特别有用。
若要强行中止程序的运行可使用Ctrl+C命令。
4.3函数所传递参数的可调性
在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。
4.4结构数据
通过使用结构(structure)数据类型把一组不同类型的数据同时又是在逻辑上相关的数据组成一个有机的整体,以便于管理和引用。
(1)用赋值语句定义
>
student.name='
Leslie'
student.num=123456;
student.test=[797573;
180178177.5;
22210205];
student
student=
name:
'
num:
123456
test:
[3x3double]
(2)用函数struct定义,调用格式:
结构数组名=struct(‘属性1’,‘属性值1’,‘属性2’,‘属性值2’,…)
s=…struct('
type'
{'
big'
'
little'
},'
color'
red'
x'
{34})
删除属性的命令:
student2=rmfield(student,'
test'
5数据显示及存取
5.1本机数据文件的输入与输出
1)文件的存储
可以用save命令>
savefilename(保存的文件名)var1var2var3(var123为变量名,缺省状态下是保存全部工作区变量)。
如果是
save(‘filename’,’var1’,’var2’,’var3’)必须要加上引号
Load命名和save命令格式一样,但是如果不想覆盖工作区中已有变量,可以将变量载入到结构变量中
vnew=load(filename,’var1’,’var2’)
取值命令
vnew.var1;
vnew.var2
5.2文件操作
1)文件的打开与关闭
1.打开文件
fopen函数的调用格式为:
fid=fopen(‘文件名’,‘使用文件方式’)
2.关闭文件
sta=fclose(fid)
5.3二维图形
5.3.1.plot函数的基本用法
plot函数的基本调用格式为:
plot(x,y)
其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
说明:
(1)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。
曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。
(3)plot函数最简单的调用格式是只包含一个输入参数:
plot(x)。
5.3.2.含多个输入参数的plot函数
含多个输入参数的plot函数调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
5.3.3.双纵坐标函数plotyy
plotyy函数是能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。
调用格式为:
plotyy(x1,y1,x2,y2)
其中x1—y1对应一条曲线,x2—y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左纵坐标用于x1—y1数据对,右纵坐标用于x2—y2数据对。
5.3.4对数坐标图形
MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:
semilogx(x1,y1,选项1,x2,y2,选项2,…):
x轴为log10刻度,y轴为线性刻度
semilogy(x1,y1,选项1,x2,y2,选项2,…)
loglog(x1,y1,选项1,x2,y2,选项2,…):
绘出log10-log10为坐标刻度的对数图
5.3.5绘制图形的辅助操作
.图形标注
有关图形标注函数的调用格式为:
title(图形名称)
xlabel(x轴说明)
ylabel(y轴说明)
text(x,y,图形说明)
legend(图例1,图例2,…)
axis([-pipi-11])限制坐标轴为:
X轴是[-pi,pi],Y轴是[-1,1]
希腊字母、上标、下标、数学符号、字型:
5.3.6三维图形
绘制三维曲线的最基本函数
plot3函数与plot函数用法十分相似
三维曲面
[X,Y]=meshgrid(-8:
0.5:
8);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
mesh(X,Y,Z)
2.绘制三维曲面的函数(网线图和网面图)
surf函数和mesh函数的调用格式为:
mesh(x,y,z,c)surf(x,y,z,c)
6.1数值计算
matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。
poly——产生特征多项式系数向量特征多项式一定是n+1维的
6.1.1直接输入系数向量创建多项式
P=[3501012]
P=
3501012
y=poly2sym(P)
y=
3*x^5+5*x^4+x^2+12
disp(y)
6.1.2特征多项式输入法
p1=poly2str(p,‘x’)—函数文件,显示数学多项式的形式,未知数为X
6.1.3由多项式的根逆推多项式
roots=[-4-2+2i-2-2i5]
roots=
-4.0000-2.0000+2.0000i-2.0000-2.0000i5.0000
p=poly(roots)
p=
13-16-88-160
disp(poly2sym(p))
x^4+3*x^3-16*x^2-88*x-160
6.2多项式的运算
6.2.1多项式的求值
MATLAB7提供了两个函数来对多项式进行求值,即polyval和polyvalm。
前者以数组为计算单位,后者以矩阵为计算单位
6.2.2求多项式的根
多项式由一个行向量表示,设为p,它的系数按降序排列,使用roots函数可以求出该多项式的根。
其使用格式为roots(p)
6.2.3多项式的四则运算
当两个多项式的向量阶数不同时,需要在低阶多项式的前边补0(高阶补零),使得它与相加的高阶多项式有相同的阶数。
>
a=[8228],b=[6161]
a=
8228
b=
6161
c=a+b
c=
14389
Y3=poly2sym(c)
Y3=
14*x^3+3*x^2+8*x+9
d=[245]
245
c+d
error
c+[0[d]]
ans=
1451214
poly2sym(ans)
ans=
14*x^3+5*x^2+12*x+14
乘法
使用conv函数对多项式进行乘法运算。
格式为c=conv(a,b),其中a和b为两个多项式的系数向量,c为相乘所生成的多项式的系数向量。
除法
使用decon函数来完成该项功能。
函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法运算。
其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。
这里,Q和r仍是多项式系数向量。
deconv是conv的逆函数,即有P1=conv(P2,Q)+r。
6.3拟合和插值
6.3.1最小二乘法曲线拟合
最小二乘法进行曲线拟合的函数。
[P,S]=polyfit(X,Y,m)
函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。
其中X、Y是两个等长的向量,P是一个长度为m+1的向量。
例用一个三次多项式在区间[0,2π]内逼近函数sin(x)。
命令如下:
X=linspace(0,2*pi,50);
Y=sin(X);
[P,S]=polyfit(X,Y,3)%得到3次多项式的系数和误差
6.3.2一维数值插值
interp1函数调用格式为:
Y1=interp1(X,Y,X1,'
method'
函数根据X、Y的值,计算函数在X1处的值。
X、Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。
method是插值方法,允许的取值有'
linear'
(线性插值)、'
nearest'
(最近插值)、'
spline'
(三次样条插值)、'
cubic'
(三次多项式插值),缺省值是'
7.1低通滤波器的实现
fdata=fft(data);
fT=length(fdata);
forj=100:
fT%低通滤波器
fdata(j)=0;
plot(abs(fdata));
data2=ifft(fdata);
%逆变换
7.2生成理论地震模型
functionwavelet
f=30;
tdeta=0.004;
N=30;
nt=0:
tdeta:
N*tdeta;
bt=(1-2*f*f*pi*pi.*nt.*nt).*exp(-pi*pi*f*f.*nt.*nt);
kesai=zeros(1,200);
kesai(12)=-0.2;
kesai(33)=0.4;
kesai(37)=-0.15;
kesai(52)=-0.5;
kesai(72)=0.35;
kesai(87)=-0.1;
st=conv(bt,kesai);
nRandRange=0.2;
ntrand=-nRandRange+rand(1,length(st))*nRandRange*2;
%随机数组
str=sprintf('
随机信号n(t)范围%.1g到%.1g'
-nRandRange,nRandRange);
%xt=st+ntrand;
xt=st;
nfft=2^ceil(log(length(xt))/log
(2));
%产生大于xt的最接近2的n次方的整数
xw=fft(xt,nfft);
plot(nt,bt);
title('
地震子波b(t)'
);
axis([00.12-11]);
7.3相关计算
rxy=xcorr(xt,yt);
ryx=xcorr(yt,xt);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)