MATLAB学习笔记一:基础知识

最近准备研究生毕业论文了,要用matlab处理大量的数据,这里将自己学习matlab过程中的一些笔记整理在这里。

  1. MATLAB系统环境
    首先展示一下matlab的操作界面,我这里用的是2016版本的matlab,其他版本的大同小异。
    MATLAB学习笔记一:基础知识_第1张图片
    【1】MATLAB主窗口
    主窗口分为3部分,分别是功能区,快速访问工具栏和当前文件操作区,都有一些简单方便的操作,具体不一一例举了。功能区分为三个板块:主页‘、绘图、应用程序。MATLAB学习笔记一:基础知识_第2张图片
    【2】命令行窗口
    命令行窗口用于输入命令并显示命令的执行结果,大部分操作都是在命令行窗口中进行完成的,>>为命令行的命令提示符,表示matlab处于准备状态,可以接收并执行matlab命令。
    MATLAB学习笔记一:基础知识_第3张图片

在命令提示符后面输入matlab命令并按回车键,matlab就会执行命令并将结果显示在后面。【注意分号的使用】
MATLAB学习笔记一:基础知识_第4张图片
如果一行式子太长的话,可以使用续行符,就是英文的三个点:…
MATLAB学习笔记一:基础知识_第5张图片
如上图所示,注意续行符跟式子之间要有一个空格,不然会报错

【3】当前文件夹窗口
为了方便管理文件,可以将文件夹设置为当前文件夹,那么在命令行的操作都在当前文件夹下执行
MATLAB学习笔记一:基础知识_第6张图片
如何设置当前文件夹呢?
1,在当前文件夹区域或者当前文件夹路径【路径可以修改】,自己选择某文件夹为当前文件夹。
2,使用cd命令。这个要注意,一定要先建立文件夹,再用cd命令设置为当前文件夹。
MATLAB学习笔记一:基础知识_第7张图片
【4】工作区窗口
工作区也称为工作空间,它是matlab用于存储各种变量和结果的内存空间,工作区窗口可用于变量的显示和操作
MATLAB学习笔记一:基础知识_第8张图片

例如在命令窗口创建两个变量,同时会在工作区以表格形式显示变量
MATLAB学习笔记一:基础知识_第9张图片
同时也能在工作区对变量进行编辑、保存等操作
【5】MATLAB的搜索路径
搜索顺序:变量–内部函数–程序文件。
MATLAB学习笔记一:基础知识_第10张图片
如何设置文件搜索路径呢
1,用path命令设置文件夹搜索路径。例如:>>path(path,‘e:\work’)
2,用对话框设置文件搜索路径。
MATLAB学习笔记一:基础知识_第11张图片
通过这两种路径,将自己的工作文件夹纳入到matlab的搜索文件路径中,matlab就能直接搜索到你的工作文件夹下面的文件了。

  1. MATLAB数值数据
    matlab数据类型的分类有三种:整型、浮点型和复数型。
    【1】整型
    1,无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、无符号64位整数。
    2,带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、带符号64位整数。
    取值范围如下图所示:MATLAB学习笔记一:基础知识_第12张图片
    matlab提供了数据类型转换函数来实现数据类型的转换,例如,uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数。
    MATLAB学习笔记一:基础知识_第13张图片
    这里调用int8函数将129转换为带符号8位整数,因为带符号8位整型数据最大值为127,所以结果为最大值127。
    MATLAB学习笔记一:基础知识_第14张图片
    上图所示,调用uint8函数将数值转换为无符号8位整型数据,因为无符号8位整型数据的最大值是255,129没有超过范围,所以这里能正常转化。
    【2】浮点型
    浮点型数据分为单精度型和双精度类型,单精度型实数在内存中占用4个字节,而双精度型实数在内存中占用8个字节,所以双精度型的数据精度更高。在matlab中,数值数据默认为双精度型。
    MATLAB学习笔记一:基础知识_第15张图片
    这里对上述函数举个例子
    MATLAB学习笔记一:基础知识_第16张图片
    【3】复数类型
    复数类型数据包含实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用i或j表示。
    在这里插入图片描述
    如上图所示,都是一样的。
    MATLAB学习笔记一:基础知识_第17张图片
    数值数据的输出格式:format 格式符
    例如:
    MATLAB学习笔记一:基础知识_第18张图片
    第一条格式符为long类型数据,所以输出16.6666666…。第二个没有写格式符,按默认short类型输出。这里要注意,format命令值影响数据输出格式,不影响数据的计算和存储。

常用数学函数:
1,函数的调用格式为:函数名(函数自变量的值)
函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例。函数在运算时是将函数逐项作用于矩阵的每个元素上,所以最后运算的结果就是一个与自变量同型的矩阵。
MATLAB学习笔记一:基础知识_第19张图片2,常用函数的应用
(1)三角函数有以弧度为单位的函数和以角为单位的函数。如果是以角为单位的函数,就在函数名后面加“d”,以示区分。
MATLAB学习笔记一:基础知识_第20张图片
(2)abs函数可以求实数的绝对值、复数的模、字符串的ASCll码值。MATLAB学习笔记一:基础知识_第21张图片(3)用于取整的函数有以下几种:

  • fix:固定取靠近0的那个整数,就是舍去小数取整。
  • floor:向下取整,取小于等于这个数的第一个整数。
  • ceil:向上取整,取大于等于这个数的第一个整数。
  • round:按照四舍五入的规则取整

MATLAB学习笔记一:基础知识_第22张图片
4,函数应用举例。
MATLAB学习笔记一:基础知识_第23张图片
具体程序如下图所示
MATLAB学习笔记一:基础知识_第24张图片
例子2:求1到100区间的所有素数。
提示:matlab提供了一个判断n是否为素数的函数isprime(n),当n是素数时返回1,否则返回0。
代码如下所示:

>> x=1:100;
>> k=isprime(x);
>> k1=find(k);
>> p=x(k1)

p =

  1 至 8 列

     2     3     5     7    11    13    17    19

  9 至 16 列

    23    29    31    37    41    43    47    53

  17 至 24 列

    59    61    67    71    73    79    83    89

  25 列

    97

第一条命令生成1到100所有数字组成的整数向量x,第二条调用isprime函数生成k向量,k向量中的元素要么为1,要么为0,取决于x向量对应数字是否为素数,第三条调用find函数生成k1向量,k1向量中的元素为k向量中非0元素的序号,也就是x向量中素数的序号,第四条命令输出x中的所有素数。

  • 变量及其操作
    计算机所处理的数据,都是存储在内存单元中的,而每个内存单元,都有一个唯一的地址,程序就是通过这个地址来访问内存单元的。在高级语言中,只需要给每个内存单元取一个名字,然后通过这个名字就能够访问每个内存单元了。
    (1)变量与赋值语句
    变量的本质就是内存单元的一个抽象。在matlab中,变量名是以字母开头,后接字母、数字或者下划线的字符序列,最多63个字符。
    MATLAB学习笔记一:基础知识_第25张图片
    变量名区分字母的大小写,并且标准函数名以及命令名必须用小写字母。
    赋值语句有两种格式:变量=表达式,表达式。如果在表达式后面加上分号,那么仅仅执行赋值操作, 不会显示运算后变量的结果。
    例题:
    MATLAB学习笔记一:基础知识_第26张图片
    (2)预定义变量
    预定义变量是由系统本身定义的变量。这里举几个例子:
    在这里插入图片描述
    (3)变量的管理
  • 内存变量的删除与修改:除了可以在工作区窗口用鼠标选中变量,右键直接修改外,还可以用命令的形式修改
    MATLAB学习笔记一:基础知识_第27张图片
  • 内存变量文件:用于保存matlab工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件。MATLAB学习笔记一:基础知识_第28张图片
  1. MATLAB矩阵的表示
    矩阵是matlab最基本的数据对象,matlab的大部分运算或者是命令都是在矩阵运算的意义下进行的,在matlab中,矩阵的使用非常灵活。不需要对矩阵的类型和维数进行说明,就会根据你所输入的内容,自动进行设置。
    1,矩阵的建立有以下方法,
    (1)直接输入法:利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或者空格分隔,不同行的元素之间用分号分隔。MATLAB学习笔记一:基础知识_第29张图片(2)利用已经建立好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成。MATLAB学习笔记一:基础知识_第30张图片
    (3)可以用实部矩阵和虚部矩阵构成复数矩阵:
    MATLAB学习笔记一:基础知识_第31张图片
    (4)冒号表达式
    向量是矩阵的特殊类型,在matlab中,可以利用冒号表达式产生行向量,格式:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。步长可以省略,默认值为1。
    MATLAB学习笔记一:基础知识_第32张图片
    还可以用linspace函数产生行向量,格式:linspace(a,b,n),a是生成向量的第一个元素,b是最后一个元素,n是元素总数。n省略时,默认为100。
    MATLAB学习笔记一:基础知识_第33张图片
    2,结构矩阵和单元矩阵
    (1)结构矩阵
    在实际应用中,经常会遇到由多种数据类型组成的数据实体,例如一个学生的数据就包括了姓名,性别,学号等数据项,这些不同类型的数据项是相互联系的,如果分开来表示,就无法体现数据的整体。结构数据类型可以把一组数据类型不同而逻辑上又相互关联的数据组成一个有机的整体,其中每个数据都构成了这个结构数据的成员,由结构数据构成的矩阵就叫做结构矩阵,结构矩阵中的每个元素就是结构数据类型。
    建立结构矩阵,可以采用给结构矩阵的成员赋值的方法来实现。
    格式:结构矩阵元素.成员名=表达式
    例如要建立含有三个元素的结构矩阵a,
    MATLAB学习笔记一:基础知识_第34张图片
    (2)单元矩阵
    建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵要用大括号括起来。MATLAB学习笔记一:基础知识_第35张图片

  2. 矩阵元素的引用
    在很多情况下,我们都需要对矩阵下的元素进行操作,那么矩阵元素的引用就变得很重要了
    【1】,矩阵元素的引用方式:
    1,通过下标来引用矩阵元素,下标必须为正整数,而且要用圆括号括起来。例如A(3,2)表示A矩阵第三行第二列的元素。给这个元素赋值200:A(3,2)=200。如果给出的下标大于原来矩阵的行列数,那么结果将自动扩展原矩阵的行列数,扩展后并没有赋值的元素默认为0,例如:MATLAB学习笔记一:基础知识_第36张图片
    2,通过序号来引用
    在matlab中,矩阵元素按列存储,就是首先存储矩阵的第一列元素,然后是第二列…一直到矩阵的最后一列元素。矩阵元素的序号就是矩阵元素在内存中的排列顺序。
    MATLAB学习笔记一:基础知识_第37张图片
    序号与下标是一一对应的,以m*n矩阵A为例子,矩阵元素A(i,j)的序号为(j-1)*m+i。
    矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现相互转换。
    sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:D=sub2ind(S,I,J)。S表示要转换的矩阵的行数和列数组成的向量,通常用size函数来获取,I表示要转换矩阵元素的行下标,J表示要转换矩阵元素的列下标。
    MATLAB学习笔记一:基础知识_第38张图片
    ind2sub函数:将矩阵元的序号转换成对应的下标,其调用格式为:[I,J]=ind2sub(S,D)。S表示要转换的矩阵的行数和列数组成的向量,D是序号。

    MATLAB学习笔记一:基础知识_第39张图片
    冒号表达式获得子矩阵:
    MATLAB学习笔记一:基础知识_第40张图片
    举例子:
    MATLAB学习笔记一:基础知识_第41张图片

end运算符:表示某一维的末尾元素下标。
MATLAB学习笔记一:基础知识_第42张图片
可以利用空矩阵来删除矩阵的元素。
MATLAB学习笔记一:基础知识_第43张图片
如果要将某些矩阵元素删除,将这些元素赋值为空矩阵即可。
MATLAB学习笔记一:基础知识_第44张图片
还可以不改变元素总数的情况下,改变矩阵的形状。
reshape(A,m,n):在矩阵总元素保持不变的情况下,将矩阵A重新排成m*n的二维矩阵。
注意:reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。
MATLAB学习笔记一:基础知识_第45张图片
还可以这样使用:A(:):将矩阵A的每一个元素堆叠起来,成为一个列向量。
MATLAB学习笔记一:基础知识_第46张图片

  1. MATLAB基本运算
    matlab基本运算包括算术运算、关系运算和逻辑运算。
    1,算术运算
    基本算术运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。matlab的运算都是在矩阵意义下进行的,单个数据的算术运算只是矩阵运算的一种特例。
    加减运算:若两矩阵同型,则运算是两矩阵的相应元素相加减。不同型时将会报错。一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。
    乘法运算:矩阵A和矩阵B进行乘法运算,要求A的列数和B的行数相等,此时则称A、B矩阵是可乘的,或称A和B矩阵维数和大小相容。如果A和B矩阵维数或大小不相容,则报错。
    除法运算:在matlab中,有两种矩阵除法运算:右除和左除。如果A矩阵是非奇异方阵,则B/A等效于B*inv(A),A\B等效于inv(A)*B。对于矩阵来说,右除和左除表示两种不同的除数矩阵和被除数矩阵关系。MATLAB学习笔记一:基础知识_第47张图片
    乘方运算:一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。
    MATLAB学习笔记一:基础知识_第48张图片
    matlab中有一种特殊的运算,叫做点运算,就是在基本运算符之前加一个点。点运算符:.*./.\.^。两个矩阵进行点运算是指他们的对应元素进行相关运算,要求;两矩阵同型。
    MATLAB学习笔记一:基础知识_第49张图片
    点运算是matlab很有特色的一个运算符,在实际应用中起着很重要的作用。
    MATLAB学习笔记一:基础知识_第50张图片
    2,关系运算
    基本关系运算符:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、~=(不等于)。
    当两个比较量是标量时,直接比较两个数的大小。若关系成立,关系表达式的结果为1,否则为0。
    当参与比较的量是两个同型矩阵时,比较的是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    当参与比较的一个是标量,一个是矩阵时,则把标量与矩阵的每个元素按标量关系运算规则逐个进行比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    例题:
    MATLAB学习笔记一:基础知识_第51张图片
    3,逻辑运算
    基本逻辑运算符:&(与)、|(或)和~(非)。MATLAB学习笔记一:基础知识_第52张图片
    在算术运算、关系运算和逻辑运算中,算术运算的优先级最高,逻辑运算优先级最低,但逻辑非运算是单目运算,它的优先级比双目运算要高。
    MATLAB学习笔记一:基础知识_第53张图片
    当参与逻辑运算的是两个同型矩阵时,比较的是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    当参与逻辑运算的一个是标量,一个是矩阵时,则把标量与矩阵的每个元素按标量关系运算规则逐个进行比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    例题:
    MATLAB学习笔记一:基础知识_第54张图片

  2. 字符串处理
    matlab中还有一种字符型数据,也叫做字符串数据,字符串是用单引号括起来的字符序列在这里插入图片描述
    若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。
    MATLAB学习笔记一:基础知识_第55张图片
    还可以建立多行字符串,形成字符串矩阵
    MATLAB学习笔记一:基础知识_第56张图片
    例题应用:MATLAB学习笔记一:基础知识_第57张图片
    matlab里面有一些常用的字符串函数:
    MATLAB学习笔记一:基础知识_第58张图片
    字符串也可以进行比较,字符串的比较有两种方法,利用关系运算符或字符串比较函数。
    MATLAB学习笔记一:基础知识_第59张图片
    字符串比较函数:
    MATLAB学习笔记一:基础知识_第60张图片
    看看例子:
    MATLAB学习笔记一:基础知识_第61张图片

字符串的查找替换在这里插入图片描述
例子:MATLAB学习笔记一:基础知识_第62张图片

你可能感兴趣的:(知识点,matlab)