matlab视频笔记.docx

上传人:b****4 文档编号:6740076 上传时间:2023-05-10 格式:DOCX 页数:15 大小:96.58KB
下载 相关 举报
matlab视频笔记.docx_第1页
第1页 / 共15页
matlab视频笔记.docx_第2页
第2页 / 共15页
matlab视频笔记.docx_第3页
第3页 / 共15页
matlab视频笔记.docx_第4页
第4页 / 共15页
matlab视频笔记.docx_第5页
第5页 / 共15页
matlab视频笔记.docx_第6页
第6页 / 共15页
matlab视频笔记.docx_第7页
第7页 / 共15页
matlab视频笔记.docx_第8页
第8页 / 共15页
matlab视频笔记.docx_第9页
第9页 / 共15页
matlab视频笔记.docx_第10页
第10页 / 共15页
matlab视频笔记.docx_第11页
第11页 / 共15页
matlab视频笔记.docx_第12页
第12页 / 共15页
matlab视频笔记.docx_第13页
第13页 / 共15页
matlab视频笔记.docx_第14页
第14页 / 共15页
matlab视频笔记.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlab视频笔记.docx

《matlab视频笔记.docx》由会员分享,可在线阅读,更多相关《matlab视频笔记.docx(15页珍藏版)》请在冰点文库上搜索。

matlab视频笔记.docx

matlab视频笔记

常量与变量

数据类型:

基本型和构造型(包括数组型)

其中基本型包括数值型(整型和浮点型)和字符串型(需要引在单引号内)

变量:

用变量名表示变量,变量名不能以数字和下划线开头

注意:

matlab对大小写敏感

弱类型语言:

当变量取完名后,所附值的类型即变量的类型,不用事先声明。

初始化变量:

赋值语句(=),input函数R=INPUT(‘Howmanyapples’),初始化后会再workspace体现

常量:

i或j虚数单位

Inf或INF无穷大

NaN不定式

Pi圆周率

对变量取名最好用小写字母,不用更大些字母,切有特定意义,且不与自带字符相同,如变量,函数名,ans

Matlab的基本数据结构

修改currentfolder图标右键,属性

标量:

1*1的矩阵

向量:

1*n或n*1的矩阵

数组:

与向量的结构相同,是matlab中的用语

矩阵

定义矩阵:

分号隔开是列,空格或逗号隔开是行,单引号’表示转置

内置函数生成矩阵:

ones(a,b)生成元素均为1的矩阵

Zeros(a,b)

Eye(a,b)类似单位矩阵的矩阵

冒号表达式:

help:

3:

9

3:

2:

9

数组元素如何引用:

变量名(3)变量名(1,2)第一行第二列变量名()按列存储

d(:

2)引用d全部第二列的元素

d(1,:

)引用全部第一行元素

矩阵嵌套生成矩阵

函数:

size()矩阵的行数和列数

Length()返回行数和列数的最大值

当矩阵所含数量较大时,为方便编辑,可以使用矩阵编辑器进行编辑,workspace第一个按钮newvariable

空数组和子数组

算术运算符

标量运算:

运算优先级:

小括号,中括号,大括号都用小括号表示

矩阵运算:

magic()魔方矩阵:

加减乘除inv()逆矩阵函数A/B=A*INV(B)矩阵的乘方

A.*B对应元素相乘,区别于A*B,同理可得.^2./

A+3A中各个元素均加3

编程

1.三大结构:

顺序结构,选择结构,循环结构

2.编程的步骤:

清晰陈述要解决的问题

明确输入输出及变量

所用算法

将算法转换为matlab代码

测试程序

3.程序bug:

调试

语法出错导致的bug

逻辑出错导致的bug

运行出现的bug

自定义函数

1M文件的分类

1.1脚本文件scriptfile:

用来执行简单的Matlab命令,运行时只需输入文件名字,MATLAB就会自动执行文件中的命令

1.2函数文件functionfile:

与脚本文件不同,它可以接受参数,也可以返回参数,一般情况下,用户不能靠单独输入其文件名来运行函数文件,而必须由其他语句来调用,如脚本文件或Matlab命令

Matlab的大多数应用程序都以函数文件的形式给出。

如三角函数,工具箱

Which函数如whichsin可以查看相应文件的位置

可以将自己编写的工具包嵌入matlab中,以方便调用,网上有很多人编写

初识matlab函数

函数是特殊的M文件,功能相对独立,但一般不能独立运行,需要赋给它相应的参数才能运行。

一般通过命令语句如赋值语句来调用,讲返回值赋给一个变量。

基本格式如下:

结构:

Function[outarg1,outarg2,...]=fname(inarg1,inarg2,...)fname是函数名称(function关键字必须写,系统会识别是普通的m文件还是函数m文件)

注:

输出参数以逗号隔开,如果只有一个输出参数,方括号可以省略;函数名称的命名规则与变量相同,不要与系统内部重名;小括号内是入口参数,不管有几个入口参数,小括号均不可省略;入口参数与返回参数可以称为形式参数。

%H1注释行:

该行注释的内容在lookfor函数搜索的范围之内,给出函数作用的简单阐述

%其他注释:

更加详细的注释

(可执行代码)该代码用来实现函数的功能

(RETURN):

最后的return可以省略

到此函数文件编写完毕,但是保存后点击运行会出现错误,原因是函数m文件不能独立运行,必须由其他代码引用。

所以还需在commandwindow中对其进行引用。

此时出现实参的概念,实参即为形式参数赋予的值,形式参数只是用来占位的,不参与计算,实参的命名可以与形式参数不同,两个文件中返回值的命名也可以不一样。

注:

1.给一个函数命名之前,可以用which函数名来检测系统中是否存在相同的名字,以避免出错,如果不存在则可以使用该函数名,如果存在相同的,则需换其他函数名。

2.函数文件中的变量(入口参数变量,中间变量,返回值变量)均不会出现在workspace中,即对用户是隐藏的,其只存在于函数文件中,该类变量称为局部变量(local)。

函数当中的局部变量

编辑器中的调试功能:

按钮:

debug

断点:

breakpoint:

编辑器中,命令行的前面有小横线的命令行均可设置断点。

如何设置断点:

1.在小横线处左键,出现红色的圆点,再次点击圆点取消断点

2.快捷键f12

快捷键f5继续运行

函数调用过程中发生了什么:

按值传递(无论参数是数组还是标量):

将实际参数的值复制一份给形式参数,无论函数文件对形式参数做了什么变化,其都不会影响最初给实际参数赋予的值,即使实际参数与形式参数的名字形同。

例子:

参数值互换。

按地址传递:

后续进行讲解

显示信息的几种方式

Msgbox:

显示

Errodlg:

函数的函数

函数的函数:

指的是输入参数中含有其他函数,传递给函数的函数的变量名一般情况应用于这个函数的执行过程。

编写一个函数的函数:

能够绘制单参数函数在制定范围的图像·7

Matlab的数值运算

1.多项式f(x)=a0xn+a1xn-1+a2xn-2+...+an-1x+a其中x可以是标量也可以是矩阵

定义多项式:

[12356]表示a=x4+2x3+3x2+5x+6

2.多项式的求值,求多项在某点处的值。

函数polyval()

如:

polyval(a,2)表示求值函数a在x=2时的值。

数值微分

符号微分

1.符号极限:

1.1limit(f)默认对独立变量x取极限,并且默认x=0处的极限

1.2limit(f,a)默认对独立变量x取极限,且x=a

1.3Limit(f,v,a)对y求极限,y=a

1.4limit(f,v,a,’right’)取右极限

2.符号微分(注意变量需要引起来,区别于limit)

2.1diff(s,’v’)

2.2diff(s)默认对独立变量x

2.3diff(s,n):

求n阶微分

2.4diff(s,’v’,n)(对于要求导的变量可以用引号也可以不用)”

Eg:

>>symsxy;注意:

需要先定义变量,否则会出错

>>f3=cos(2*x+y);

>>diff(f3,'x',2)

3.求偏倒数

方法一:

利用多次diff

方法二:

利用嵌套diff

多元函数的极(最)值

在matlab中同样有求多元函数的极(最)小值得函数,但由于多元函数的形式比较复杂,不同情况用到不同的matlab函数,若要求多元函数u在某一区域的极(或最)大值。

可转化为求-u在该区域的极小值。

1.非线性无约束情形

求极(或最)小值点(或最)小值得调用格式是:

求方程解析解

函数:

solve寻求表达式的零点或方程的解:

solve函数中既可以写表达式也可以写方程式

线性方程和非线性方程的解析解均可以通过solve函数来求解。

例子:

求非线性方程组以y和z作变量的解:

uy2+vz+w=0y+z+w=0

在editor编辑器中编写代码:

clear;

clc;

symsxyuvwz;声明符号变量

L1=u*y^2+v*z+w;

L2=y+z+w;

[y,z]=Solve(L1,L2,y,z);注意小括号与中括号

解得表达方式有三种,具体参考视频教程:

1.一个方程对应一个解,直接返回响应的解;

2.当方程有多个解时,返回解得符号向量;

3.当解有多个,而输出只有一个时,解会输出到一个结构数组当中,用结构数组寻找相应的域即可。

常微分方程(组)解析解

函数:

dsolve

表达式化简

Matlab提供了化简和美化符号表达式的各种函数,具体有,合并同类项collect,多项式展开expand,因式分解factor,一般化简simplify,不定式化简simple,通分numden,和书写格式美化pretty.

1.合并同类项:

两种调用方法

Eg1:

f=x2y+xy-x2-2x

Symsxy;

f=x2y+xy-x2-2x;

Fx=collect(f);

Eg2:

g=(-1/4)*x*exp(-2*x)+3/16*exp(-2*x)

Gx=collect(g,exp(-2*x))指定合并同类项的项

2.多项式展开factor

Eg:

f1=x^2-y^2

Symsxy;

F1=x^2-y^2(此句后面不要加分号,让其运行一下,否则会出现没有定义f1的错误)

Factor(f1);

3.一般化简simplify(化简完的有时候也不是最简,这时候就需要手动化简)

Eg:

f2=x^2+y^2+2*x*y

Simplify(f2)

4.Simple会用各种方法对多项式进行化简,(不常用)

5.通分numden

F4=x/y+y/x

当直接用numden(f4)时,给出的结果只有分子。

所以正确的调用形式是[s1,s2]=numden(f4)

给出的结果中s1是分子,s2是分母。

6.书写格式美化pretty(f4):

可以将幂显示为常用的层叠形式,以便于视觉

绘图入门

1.Plot一般选择步长为0.01或0.001

X=0:

0.01:

2*pi;

Y1=sin(x);

Plot(x,y1)

2.还可以给图像添加坐标的描述

Xlabel(‘x轴’)

Ylabel(‘y轴’)

网格gridon或gridoff

另外还可以添加图例legend(‘正弦曲线’)

3.如何使两个图形同时出现

Plot(x,y1,x,y2)自动为不同函数分配不同颜色的曲线

还可以添加图例legend(‘正弦曲线’,’余弦曲线’)(按照plot函数中y1,y2的先后顺序)

Title(‘’)添加图形的标题

4.如何将已写程序保存为m文件(edit调出编辑器)

5.如何将下图中的横坐标改为想要的值axisaxisequal使横纵坐标的长度相同aixs([02*pi-11])指定值横坐标为(0-2*pi)纵坐标是-1到1

6.如何改变线的属性,Helpplot以及

7.调节图像属性的一些常熟函数:

semilogxsemilogylogloglegendtitlegridxlabelylabelhold

8.坐标轴的控制

Semilogx(x,y)

semilogy(x,y)

loglog(x,y)

9.图像窗口的工具栏:

可以对图形进行编辑

9.1关于图像的保存:

默认为fig格式,但是该格式的文件只能在matlab中打开,要想在其他文件中编辑或运用,可以将其保存为jpg.Bmp.等格式。

9.2rotate3d旋转为3d

9.3showplottoolsanddockfigure

10.格式化输出函数:

fprintffprintf(format,A...)格式化字符(查看fprintf的帮助文档和相应的变量

二维作图

注:

脚本文件的名字不可以和函数的名字相同,否则会出错。

前5种图的调用方式都相同(例子见m文件)

1.Stem

2.Stairs阶梯图

3.Bar竖式条形图

4.Barh水平条形图

5.Compass罗盘图(如果不对axis做说明,即可得出360度的图形,否则为扇形)

6.Pie(计算所占百分比)其调用方式不同于前五种

6.1pie(X,explode)

Examples

Emphasizethesecondsliceinthechartbysettingitscorrespondingexplodeelementto1.

x=[130.52.52];

explode=[01000];

pie(x,explode)

colormapjet

7.Hist柱状图(直角坐标系中的柱状图,极坐标中的柱状图用函数rose)

有些图形的作图方式有两种,一是调用函数,二是选中要作图的变量,点击workspace的作图按钮,如果要对图形做进一步的编辑,可以参见上述图片所显示的地址。

Syntax

n=hist(Y)

n=hist(Y,x)注:

y是函数值,x是y的取值范围

n=hist(Y,nbins)

[n,xout]=hist(...)

hist(...)

hist(axes_handle,...)

Description

Ahistogramshowsthedistributionofdatavalues.

n=hist(Y)binstheelementsinvectorYinto10equallyspacedcontainersandreturnsthenumberofelementsineachcontainerasarowvector.IfYisanm-by-pmatrix,histtreatsthecolumnsofYasvectorsandreturnsa10-by-pmatrixn.EachcolumnofncontainstheresultsforthecorrespondingcolumnofY.NoelementsofYcanbecomplexoroftypeinteger.默认分为10份

n=hist(Y,x)wherexisavector,returnsthedistributionofYamonglength(x)binswithcentersspecifiedbyx.Forexample,ifxisa5-elementvector,histdistributestheelementsofYintofivebinscenteredonthex-axisattheelementsinx,noneofwhichcanbecomplex.Note:

usehistcifitismorenaturaltospecifybinedgesinsteadofcenters.

n=hist(Y,nbins)wherenbinsisascalar,usesnbinsnumberofbins.分为Nbins份

8.Feather函数

9.Line函数

10.Ezplot和fplot:

这两个函数不需要创建中间数据,调用函数类似,后者更精确,所以优先使用该函数(详细调用方法见help文件)

10.1fplot函数是适应性的,它意味着在自变量范围内函数突然变化显示更多的点

10.2fplot支持latex命令,用来指定坐标图的标题和坐标标签,而函数ezplot不能。

高维数组

1.什么是高维数组:

2.如何创建高维数组:

方法一:

下标法

>>d(:

:

1)=[123;456;789];

>>d(:

:

2)=[234;567;8910];

>>d(:

:

3)=[345;678;91011]

方法二:

函数生成法zerosonesrandnrand

方法三:

拼接法:

reshaperepmatcat

3.如何访问高维数组中的元素:

4.如何存储:

三维作图(注意点乘)

命令:

plottools或者图像显示窗口的icon开启plottools(查看帮助文档helpplottools)

5.三维图像能更丰富的表现数据的几何关系,三维图像常用于表现以下两类数据:

5.1两个变量是同一自变量的函数,当你希望显示自变量重要性时,你可以用三维作图表示

如:

x和y均是t的函数

5.2一个变量是另外两个变量的函数

6.三维图像包括:

三维曲线图,三维表面图,三维网格图,三维等高线图(任意两变量函数均可以用三维表面图,三维网格图,三维等高线图来表示)

6.1三维曲线图:

Plot3()

6.2三维表面图:

surf(Z)

surf,surfc:

3-Dshadedsurfaceplot

Tographselectedvariables,usethePlotSelectorintheWorkspaceBrowser,orusetheFigurePalettePlotCatalog.ManipulategraphsinploteditmodewiththePropertyEditor.Fordetails,seePlottingTools—InteractivePlottingintheMATLABGraphicsdocumentationandCreatingGraphicsfromtheWorkspaceBrowserintheMATLABDesktopToolsdocumentation.

Syntax

前四种最为常用

surf(Z)

surf(Z,C)

surf(X,Y,Z)

surf(X,Y,Z,C)

surf(...,'PropertyName',PropertyValue)

surf(axes_handles,...)

surfc(...)

h=surf(...)

Description

Usesurfandsurfctoviewmathematicalfunctionsoverarectangularregion(矩形区域).surfandsurfccreatecoloredparametricsurfacesspecifiedbyX,Y,andZ,withcolorspecifiedbyZorC.

surf(Z)createsaathree-dimensionalshadedsurfacefromthezcomponentsinmatrixZ,usingx=1:

nandy=1:

m,where[m,n]=size(Z).Theheight,Z,isasingle-valuedfunctiondefinedoverageometricallyrectangulargrid.Zspecifiesthecolordataaswellassurfaceheight,socolorisproportionaltosurfaceheight.

Suf(z)可以创建一个三维的阴影表面图,Z是一个矩阵形式,x定义为1:

n,y定义为1:

m,z是m行n列的矩阵,高度z是一个单值函数,定义在一个曲形的网格区。

Z不仅可以指定网格图的高度,还可以定义网格图的颜色。

surf(Z,C)plotstheheightofZ,asingle-valuedfunctiondefinedoverageometricallyrectangulargrid,andusesmatrixC,assumedtobethesamesizeasZ,tocolorthesurface.

surf(X,Y,Z)createsashadedsurfaceusingZforthecolordataaswellassurfaceheight.XandYarevectorsormatricesdefiningthexandycomponentsofasurface.IfXandYarevectors,length(X)=nandlength(Y)=m,where[m,n]=size(Z).Inthiscase,theverticesofthesurfacefacesare(X(j),Y(i),Z(i,j))triples.TocreateXandYmatricesforarbitrarydomains,usethemeshgridfunction.

Meshgrid(创建网格)

GenerateXandYarraysfor3-Dplots

Syntax

[X,Y]=meshgrid(x,y)

[X,Y]=meshgrid(x)

[X,Y,Z]=meshgrid(x,y,z)

Description

[X,Y]=meshgrid(x,y)transformsthedomainspecifiedbyvectorsxandyintoarraysXandY,whichcanbeusedtoevaluatefunctionsoftwovariablesandthree-dimensionalmesh/surfaceplots.TherowsoftheoutputarrayXarecopiesofthevectorx;columnsoftheoutputarrayYarecopiesofthevectory.

[X,Y]=meshgrid(x)isthesameas[X,Y]=meshgrid(x,x).注意中括号,不是小括号

[X,Y,Z]=meshgrid(x,y,z)producesthree-dimensionalarraysusedtoevaluatefunctionsofthreevariablesandthree-dimensionalvolumetricplots.

surf(X,Y,Z,C)createsashadedsurface,withcolordefinedbyC.MATLABperformsalineartransformationonthisdatatoobtaincolorsfromthecurrentcolormap.

surf(...,'PropertyName',PropertyValue)specifiessurfa

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

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2