【MATLAB】MATLAB的基础知识

来源:互联网 发布:科比详细身体数据 编辑:程序博客网 时间:2024/05/19 18:15

一. MATLAB的启动和退出

1.MATLAB的启动有如下两种方式:

方式一:双击操作系统桌面上的MATLAB快捷方式,即可启动并打开MATLAB命令窗口。

方式二:单击【开始】菜单,依次指向【程序】→【MATLAB】即可启动并打开MATLAB命令窗口。

2.MATLAB的退出

退出MATLAB非常简单,只需在MATLAB命令窗口内键入命令quit或单击命令窗口的【关闭】按扭即可。

二. MATLAB使用界面简介

(注:版本不同,界面可能略不同)

打开MATALB后,缺省的操作桌面如图1.1所示。常用的有命令窗、历史命令窗、当前目录浏览器、工作空间浏览器、和交互界面分类目录窗5个窗口。如图1.1所示。

这里写图片描述
图1.1 MATLAB操作桌面的缺省外貌

1.列表内容

命令窗(Command Window)

该窗缺省地处在MATLAB桌面的右侧,该窗功能是进行各种MATLAB操作的主要窗口。在该窗内,可键入各种送给MATLAB运作的指令、函数、表达式;显示除图形外的所有运算结果。

2.历史命令窗(Command History)

该窗缺省地处于MATLAB桌面的左下方前台。该窗记录已经运作过的指令、函数、表达式;允许用户对它们进行选择复制、重运行、及产生M文件。

3.当前目录浏览器(Current Directory Browser)

该浏览器缺省地位于MATLAB桌面左下方的后台。在此交互界面中,可以进行当前目录的设置;展示相应目录上的M、MDL等文件;复制、编辑和运行M文件;装载MAT数据文件。

  1. 工作空间浏览器(Workspace Browser)

该交互界面缺省地位于MATLAB桌面的左上方后台。该窗口列出MATLAB工作空间中所有的变量名、大小、字节数;在该窗中,可对变量进行观察、编辑、提取和保存。

5.交互界面分类目录窗(Launch Pad)

该交互界面缺省地位于MATLAB桌面的左上方前台。该窗以可展开的树状结构列着MATLAB提供的所有交互界面,包括:帮助界面、演示界面、各种应用交互界面。用户若双击该树状结构上的分类图标,就可展现出相应的交互界面。

四. 帮助信息的获取

MATLAB里有以下几种方法可获得帮助:帮助命令(help)、查找命令(lookfor)、帮助窗口(help window)、帮助桌面(help desk)、在线帮助页或直接通过网络连接到Mathworks公司。
1.帮助命令(help)

帮助命令是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。如果你知道要找的题材(topic)是什么,直接键入help

1-1例如在命令窗口键入help sin ,会出现如下解释:SIN    Sine.         SIN(X) is the sine of the elements of X. Overloaded methods         help sym/sin.m

2.查找命令(lookfor)

它可以从你键入的关键字(即使这个关键字并不是MATLAB的指令)列出所有相关的题材,和help相比,lookfor所能覆盖的范围更宽,可查找到包含在某个主题中的所有词组或短语。

1-2 例如在命令窗口键入lookfor sin会显示:java.m: %Using Java from within MATLABsyntax.m: % You can enter MATLAB commands using either a FUNCTION SUBSINDEX Subscript index.ISINF  True for infinite elements.ACOS   Inverse cosine.ACOSH  Inverse hyperbolic cosine.ASIN   Inverse sine.ASINH  Inverse hyperbolic sine.COS    Cosine.COSH   Hyperbolic cosine.SIN    Sine.……

3.帮助窗口(help window)

帮助窗口提供与帮助命令相同的信息,但窗口式的帮助界面更为方便直接。在MATLAB命令窗口中有三种方法进入帮助窗口:

● 双击菜单条上的问号按钮
● 键入helpwin

4.帮助桌面(help desk)

通过在命令窗口中选择帮助菜单的“Help Desk”选项后键入help desk命令即可进入帮助桌面。这两种方法都会自动启动浏览器,用户可利用浏览器的功能来浏览帮助。

5.在线帮助页

帮助桌面的在线帮助均有相应的PDF格式文件,可以用Adobe Acrobat
Reader浏览器打开。可以方便的翻页和查找。用户选中帮助桌面的关于PDF格式文件的选项,或是在命令窗口键入doc,便会自动打开文件。

6.Mathworks网站

对于已连入Internet的用户,可通过HelpDesk直接访问Mathworks公司的网站www.mathworks.com询问有关问题。

五.MATLAB的数值计算功能

1.变量

和其它高级语言一样,MATLAB也是使用变量来保存信息。变量由变量名表示,变量的命名应遵循如下规则:
● 变量名可以由字母、数字和下划线混合组成。 ● 变量名区分字母大小写。 ● 变量名的字符长度不应超过31个。

在MATLAB内部还存在着一些系统默认的特殊变量和常数,如表1.1

这里写图片描述

MATLAB的变量分为字符变量和数值变量两种,字符变量必须用单引号括起来。

1-3 例如,用户可输入:a=’happy new year’则表示将字符串’happy new year’赋值给字符变量a。若用户输入:b=365则表示将数值356赋值给数值变量b。和其它高级语言不同的是,MATLAB使用变量时不需要先对变量类型进行说明,MATLAB会自动根据所输入的数据来决定变量的数据类型和分配存贮空间。

2.数值

在MATLAB内部,每一个数据元素都是用双精度来表示和存储的,大约有16位有效数字。其数值有效范围约为10-308~10+308。

但在其进行数据输入输出时,MATLAB却可以用不同的格式。如果参加运算的每一个元素均为整数,则MATLAB将用不加小数点的纯整数格式显示运算结果,否则,按默认的输出格式显示结果。MATLAB的默认格式为short格式,该格式显示运算结果为保留小数点后4位有效数字。用户可以通过format命令改变输出格式为long,以得到更多的有效数字(小数点后14位)。需要注意的是,数据输出格式的改变并不影响该数据在MATLAB内部的存储精度。设置为short和long输出格式的命令分别为:
format short format long
MATLAB通常用十进制数来表示一个数,亦可用科学计数法来表示一个数。另外,MATLAB还可以进行复数运算,复数运算可以由如下语句来产生:
c=a+j*b (或c=a+i*b) 将实部为a虚部为b的复数值赋值给复变量c c=a*exp(j*b)
(或c=a*exp(i*b)) 将模为a幅角为b的复数赋值给复变量c

3.矩阵

矩阵是MATLAB进行数据处理和运算的基本元素,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。我们通常意义上的数量(标量)在MATLAB系统中是作为1×1的矩阵来处理的,而仅有一行或一列的矩阵在MATLAB中称为向量。

1) 矩阵的创建 MATLAB中矩阵的输入一般有以下几种方法:

①直接输入矩阵元素。直接输入矩阵元素必须注意:各元素之间用空格或逗号间隔,用分号(“;” )或回车结束矩阵行,用中括号“[ ]”把矩阵所有元素括起来。

 例1-4   在命令窗口输入如下形式:>        A=[1,2,3;4,5,6;7,8,9]    或  A=[1 2 3 4 5 6 7 8 9] >        结果为 A =>        1     2     3>        4     5     6

②MATLAB中有许多特殊矩阵,可直接调用MATLAB函数产生。如表1.2所示。
这里写图片描述

2) 矩阵的下标

在MATLAB系统中,矩阵的元素是通过其行、列的标号来标识的,矩阵元素所处的行号和列号称为该元素的下标。矩阵元素可以通过其下标来引用,A(i,j)即表示矩阵A第i行第j列的元素。

1-5 定义矩阵A如下所示:A=[1.1  1.2  1.3 1.4  1.5  1.6 1.7  1.8  1.9]则A(2,3)表示矩阵A2行第3列的元素1.6。若输入语句:X=A(1,1)+A(2,2)+A(3,3)则X即是矩阵A对角线元素之和,运行结果为X=  4.5000

★注意:在MATLAB中,矩阵下表的行、列号都是从1开始的。

3)利用外部数据文件(*.mat)保存和装载矩阵

在运行过程中,有时需要将矩阵数据长期保留下来,以备以后使用,这时就可以使用在MAT文件来对矩阵数据进行保存,在需要时又将其装载到MATLAB环境中。
MAT文件(即扩展名为mat的文件)是MATLAB保存数据的一种标准格式的二进制文件。MAT文件的生成和调用有专用命令save和load来进行。
用户可以将已定义过的矩阵(变量)以MAT文件的格式存入到磁盘上,命令格式为:

save 路径\文件名 变量名

save命令可同时将多个矩阵(变量)保存到一个MAT文件中,此时变量名之间需用空格分开。

例如,用户输入命令:save c:\my a b

则表示将变量a、b 以文件名my.mat保存到C盘根目录下。若路径默认,则MATLAB自动将变量保存到其默认的目录(work)中。
以MAT文件保存的矩阵,用户在使用MATLAB的任何时候均可用load命令装载到MATLAB的工作空间中。例如,要将上述保存的变量a、b重新装载到MATLAB的工作空间,只需键入命令:

> load c:\my

4)矩阵和数组的运算

在MATLAB中,数组也是一个非常重要的概念,矩阵在某些情况下可视为二阶的数值型数组。但是在MATLAB中,数组和矩阵运算规则却有着较大的区别。例如,两矩阵相乘和两数组相乘所遵循的运算规则就是完全不相同的。具体运算规则如表1.3所示。

这里写图片描述

●size( )函数
size( )函数用于计算矩阵的行数和列数,其调用格式为: d=size(a)

●length( )函数
●sum( )函数 sum( )函数用于实现矩阵元素的求和运算,其调用格式为: sum(a)
若a为向量,则该调用格式将计算出向量a所有元素之和。若a为矩阵,则该调用格式将产生一行向量,其元素分别为矩阵a的各列元素之和。
●max()函数 max ( )函数用于求出矩阵元素的最大值,其调用格式为: max (a)
若a为向量,则该调用格式求出向量a所有元素的最大值。若a为矩阵,则该调用格式将产生一行向量,其元素分别为矩阵a的各列元素的最大值。

4.运算符

MATLAB的基本运算为算术运算、关系运算、逻辑运算和特殊运算等,每一类运算都有自己专用的运算符。关于矩阵和数组的算术运算符已在表1.3中列出,如下表1.4、表1.5、表1.6分别列出了MATLAB的关系运算符、逻辑运算符、特殊运算符和合其对应的功能与示例。

这里写图片描述
这里写图片描述
这里写图片描述

六.程序流程控制

MATLAB为用户提供了丰富的程序结构语句用来实现用户对程序流程的控制。
1.循环控制语句

当程序段中的某段指令需要根据一定能够的条件多次重复执行时,就需要用到循环控制。在MATLAB中,循环控制由for语句和while语句实现。

1)for 循环语句 for 循环语句的格式为:

for 变量=表达式 语句组 end

在上述格式中,end是必需的,不可默认。表达式是一个矩阵,语句组则是一组合法的MATLAB命令。

for循环语句则执行过程是:从表达式的第一列开始,依次将表达式(矩阵)的各列之值赋值给变量,然后执行语句组中的语句,直到最后一列。
for 语句的典型格式是表达式为冒号运算的行向量,即: for i=m:p:n
语句组 end 其中m为循环起始值,n为循环终止值,p为步长值。

1-6. 我们用for语句来实现求和运算s=1+3+5+7+…+99,对应的MATLAB命令如下:s=0;for  i=1:2:99    s=s+I;ends运行结果为:  s=                 2500在上述格式中,步长p可以默认,系统将默认步长为1
1-7. 我们可用如下语句来实现求和运算s=1+2+3+4+…+100s=0;for  I=1:100   s=s+i;ends运行结果为:s=   5050

for语句也可实行多重循环的嵌套,其格式为: for 变量1=表达式1
for 变量2=表达式2
语句组
end end ★注意:在用for语句实现多重循环时,for和end必须成对出现。

2)while语句

while语句用来实现在某一逻辑关系控制下的循环。while语句的格式为: while 关系表达式
语句组 end 在while语句中,end也是必需的,不可默认。while语句的执行过程是:首先判断关系表达式是否成立,如果成立则运行语句组中的语句,否则停止循环。通常是通过在语句中对关系表达式进行改变来控制循环是否结束。

1-8. 我们用while语句来实现下列级数求和:  命令如下:s=0;n=1;while  n<=100s=s+1/n;n=n+1;ends运行结果为:s=  5.1874

2.条件控制语句

和其他高级程序语言一样,MATLAB也为用户提供了方便的条件控制语句,用以实现程序的条件分支运行。实现条件控制的MATLAB命令是if
语句和switch语句。

1) if 语句

if语句有两种格式。当分支条件之有两种情况时,可采用if语句的第一种格式,即 if 表达式 语句组1 else
语句组2 end 上述if语句的运行结果是,如果表达式成立,则运行语句组1,若表达式不成立,则运行语句组2。 当程序运行的分支条件多于两个时,则可采用if语句的第二种格式,即:
if 表达式1
语句组1
elseif 表达式2 注意这里不能有空格,否则得在下面重新加一个end 语句组2
else
语句组3
end 上述if语句的运行结果是,若果表达式1成立,则运行语句组1;若表达式2成立,则运行语句组2;否则,则运行语句组3。

2) switch语句

当程序运行过程中需要根据某个变量的多种不同取值情况来运行不同的语句时,就要用到switch语句。
switch语句适合于多个条件的分支程序,其基本格式为: switch 控制变量 case 变量1 语句组1 case 变量2
语句组2 case 变量3 语句组3 …
otherwise 语句组n end
在上述格式中,switch语句通过判断控制变量的取值情况来决定运行哪一个语句组,即当控制变量的值为变量值1时,则运行语句组1;当控制变量的值为变量值2时,则运行语句组2,依此类推。若所有条件均不满足,则运行otherwise后的语句组。
注意,在switch语句中,end是必需的,不可默认。

七. M文件

MATLAB为用户提供了专用的M文件编辑器,用业帮助用户完成M文件的创建、保存及编辑等工作。
1.创建新M文件

利用M文件编辑器创建新M文件有如下两种方法:
方法一:启动MATLAB,选中命令窗口菜单栏【File】菜单下【New】菜单选项的【M-File】命令,打开MATLAB的M文件编辑窗口。
方法二:单击MATLAB命令窗口工具栏的“New M-File”图标按钮,也可打开M文件编辑器。

2.保存M文件

当用户的M文件己输入或编辑完毕后,则可将M文件保存到磁盘上。保存M文件的方法是,单击M文件编辑器窗口的工具栏中的“Save”图标按钮或选中M文件编辑器窗口菜单栏【File】菜单的【Save】命令,打开M文件保存对话框。
如果是新建M文件,则系统默认的文件名为“Untitledl.m”,用户可以对要保存的文件进行重新命名。系统默认的文件保存目录为“work”,用户也可以通过保存对话框对文件保存位置进行更改和设置。当保存的文件名和保存位置设定完成后,按下【保存】按钮,即可将M文件保存到指定位置。

3.打开M文件

若需要对己保存过的M文件进行修改和编辑,则可单击MATLAB命令窗口工具栏的“Open
file”图标按钮或选中命令窗口菜单栏【File】菜单下的【Open】命令,系统即启动M文件编辑器并打开用户指定的M文件。

4.搜索与执行M文件

M文件中的命令是通过在MATLAB命令窗口中键入M文件的文件名并按下回车键来执行的。当用户在命令窗口中键入M文件的文件名并按下回车键后,系统先搜索该文件,若该文件存在,则以解释方式按顺序逐条执行M文件语句。
“work”目录是系统M文件的默认保存目录。若用户的M文件保存在“work”目录以外的其他位置,则可通过如下两种方式在MATLAB命令窗口中直接调用该M文件。
方式一:启动MATLAB后,用“CD”命令将当前工作目录更改为M文件的保存目录,如: cd A:\mydata
方式二:用“path”命令将M文件的保存目录添加到MATLAB的默认搜索路径中。设待执行的M文件的保存位置为“D:\myfile”,则添加的搜索路径的命令为:
path(path,’D:\myfile’)
运行该命令后,即可直接在MATLAB命令窗口中直接调用并执行D:\myfile目录下的所有M文件。

八. 函数文件

函数文件是M文件的另一种类型,它也是由MATLAB语句构成的ASCII码文本文件,扩展名为m。用户可用前述的M文件的创建、保存及编辑的方法来进行函数文件的创建、保存与编辑,但特别需要注意以下几点:
函数文件必须以关键字"function"开头。 函数文件的第1行为函数说明语句,其格式为: function
[返回参数1,返回参数2,…]=函数名(传入参数1,传入参数2,…) 其中函数名为用户自己定义的函数名(与变量的命名规则相同)。
函数文件保存的文件名应与用户定义的函数名一致,例如,若函数文件说明语句中定义的函数名为"example",则该函数文件保存的文件名为
”example . m”。
  用户可通过函数说明语句中的返回参数及传入参数来实现函数参数传递。返回参数和传入参数并不是必需的。下面是函数文件调用及参数传递的例子。

 例1-9. 首先创建如下所示的函数文件并保存。function [s,m]=pjz(a)  %定义函数文件pjz.ma为传入参数,ms为返回参数l=length(a);   %计算传入向量长度s=sum(a);      %对传入向量a求和并赋值给sm=s/l;         %计算传入向量的平均值并赋值给返回向量m上述函数文件定义了1个新的函数pjz,其作用是对指定向量求和及平均值,并通过向量s、m返回计算结果。用户可通过如下所示的命令调用该函数:a=1:9;[s,m]=pjz(a)运行结果为:s =     45m =     5

九. MATLAB的可视化

MATLAB在数据可视化方面的表现力很强。它的图形处理能力不仅功能强大,而且充分考虑了高低不同层次用户的不同需求,系统具有两个层次的绘图指令:一个层次是直接对图形句柄进行操作的底层绘图指令,它具有控制和表现数据图形能力强,控制灵活多变等优点,对于有较高和特殊需求的用户而言,该层次能够完全满足他们的需求;另一层次是在底层指令基础上建立的高层绘图指令,它的指令简单明了,易于掌握,适用于普通用户。
常用的MATLAB绘图语句有figure、plot、subplot、stem,等,图形修饰语句有title、axis、text等。

1.figure语句

figure语句有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整数型的窗口编号。figure(n)表示将第n号图形窗口作为当前的图形窗口,并将其显示在所有窗口最前面;如果该图形窗口不存在,则新建一个窗口,并辅以编号n。

2.plot语句

线型绘图函数,将点和点之间用直线段连接。用法为plot(x,y,’s’),参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细,,通常可以省略。常用方法如表1.7所示。

3.stem语句

绘制离散序列图,常用格式stem(y)和stem(x,y)分别和相应的plot的函数绘图规则相同,只是用stem命令绘制的是离散序列图。
这里写图片描述
4. subplot语句
subplot(m,n,i) 图形显示时分割窗口命令,把一个图形窗口分为m行,n列,m×n个小窗口,并指定第i个小窗口为当前窗口。

  1. 绘图修饰命令

在绘制图形时,我们通常需要为图形添加各种标注以增加可读性。在plot语句后使用title(’标题’)可以在图形上方添加标题;使用xlabel(‘标记’)或ylabel(‘标记’)为X轴和Y轴添加说明;使用text(X值、Y值、’想加的标示’)可以在图形中任意位置添加标示;使用axis([xmin,xmax,ymin,ymax])设置坐标轴的最小最大值;gtext(‘string’)利用鼠标添加说明性文本信息;grid
on(off)给当前图形标记添加(取消)网格。

1-10 用MATLAB语句绘正弦图,其运行结果见图1.2x=0:0.01*pi:2*pi;    %定义x向量figure(1);           %创建一个新的图形窗口,编号为1 subplot(2,2,1);       %将窗口划分为2行2列,在第1个窗口中作图plot(x,sin(x));       %画图title('正弦线');      %给图形加标题subplot(2,2,2);      %在第2个窗口中作图plot(x,sin(x),'r');     %画一正弦波,红色xlabel('X');         %给x轴加说明ylabel('SIN(X)');    %给y轴加说明subplot(2,2,3);      %在第3个窗口中作图plot(x,sin(x),'--');    %画一正弦波,破折线subplot(2,2,4);      %在第4个窗口中作图plot(x,sin(x),'r+');   %画一正弦波,红色加号text(4,0,'注记');     %在位置(4,0)处加一注记

这里写图片描述

6.添加图利函数legend( )

基本格式:legend(‘string1’,’string2’,…)
legend(…,pos) 功能:给图加图例,对于每个已经画出的曲线,可以配置想要的图例。

参数:‘string1’,’string2’,…——解释图例的字符串 pos —— 决定放置图例的位置 pos= -1
将图例放在轴边距外右边 pos= 0 将图例放在轴边距内右边占用尽量少的点 pos= 1 将图例放在轴的右上方(缺省值) pos= 2
将图例放在轴的左上方 pos= 3 将图例放在轴的左下方 pos= 4 将图例放在轴的右下方

1-11.  legend用法举例  x=-pi:pi/20:pi;plot(x,cos(x),'-ro',x,sin(x),'-.b')h=legend('cos','sin',2)

这里写图片描述

0 0
原创粉丝点击