matlab总结.docx

上传人:b****6 文档编号:6184394 上传时间:2023-01-04 格式:DOCX 页数:17 大小:639.58KB
下载 相关 举报
matlab总结.docx_第1页
第1页 / 共17页
matlab总结.docx_第2页
第2页 / 共17页
matlab总结.docx_第3页
第3页 / 共17页
matlab总结.docx_第4页
第4页 / 共17页
matlab总结.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

matlab总结.docx

《matlab总结.docx》由会员分享,可在线阅读,更多相关《matlab总结.docx(17页珍藏版)》请在冰豆网上搜索。

matlab总结.docx

matlab总结

1.1MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算(computation)、可视化(visualization)、编程(programming)于一身,并提供了丰富的Windows图形界面设计方法

1.2MATLAB语言的特点:

•语言简洁紧凑,语法限制不严,程序设计自由度大,可移植性好

•运算符、库函数丰富

•图形功能强大

•界面友好、编程效率高

•扩展性强

Linspace(a,b,N)a为初始值,b为截止值,分为N个值。

N缺省为100

1.3特殊变量

Pi,I,j,eps,realmin,realmax,Inf,Nan

2.1常用的操作命令

命令

该命令的功能

命令

该命令的功能

cd

显示或改变工作目录

hold

图形保持命令

clc

清除工作窗

clear

清除内存变量

disp

显示变量或文字内容

save

保存内存变量到指定文件

2.2常用的标点符号

标点符号

定义

标点符号

定义

;

区分行,取消运行显示等

.

小数点以及域访问等

区分列,函数参数分隔符等

连接语句

:

在数组中应用较多

字符串的标识符号

()

指定运算优先级等

=

赋值符号

[]

矩阵定义的标志等

!

调用操作系统运算

{}

用于构成单元数组等

%

注释语句的标识

2.3常量piepsans

常量

常量的功能

常量

常量的功能

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?

','s')

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

语句组1

elseif条件2

语句组2

……

elseif条件m

语句组m

else

语句组m+1

end

分支语句

其语句格式为:

switch表达式

case表达式1

语句组1

……

case表达式m

语句组m

otherwise

语句组m+1

end

for循环语句

语句格式为:

for循环变量=初值:

增量:

终值

循环体语句

end

for更一般的表达式

for循环变量=矩阵表达式

循环体语句

end

执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。

实际上,“初值:

增量:

终值”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。

while语句

while语句的一般格式为:

while(条件)

循环体语句

end

其执行过程为:

若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环

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:

'Leslie'

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)

3*x^5+5*x^4+x^2+12

6.1.2特征多项式输入法

>>P=[3501012]

P=

3501012

>>y=poly2sym(P)

y=

3*x^5+5*x^4+x^2+12

>>disp(y)

3*x^5+5*x^4+x^2+12

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]

a=

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'(三次多项式插值),缺省值是'linear'。

7.1低通滤波器的实现

fdata=fft(data);

fT=length(fdata);

forj=100:

fT%低通滤波器

fdata(j)=0;

end

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);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1