MATLAB入门到精通(一)


MATLAB语言的主要功能:

  • 数值计算
  • 符号计算
  • 图形绘制
  • 程序流程控制
  • 工具箱
专题一 MATLAB基础知识
1.1 MATLAB系统环境

(1)MATLAB主窗口

在这里插入图片描述

(2)命令行窗口

在这里插入图片描述

命令行窗口用于输入命令并显示命令的执行结果,命令的大部分操作都在这个窗口进行。两个>叫做命令提示符,表示matlab处于准备状态

在这里插入图片描述

续行符的作用是可以把下面的物理行看作是本行的一个逻辑继续

(3)当前文件夹窗口

当前文件夹是指MATLAB的工作文件夹,为了方便管理文件,用户可以把自己的文件夹作为当前文件夹。

如何设置当前文件夹:

  • 在当前文件夹工作栏或当前文件夹窗口中选择某文件夹为当前文件夹
  • 使用cd命令

(4)工作区窗口

在这里插入图片描述

工作区也称为工作空间,它是MATLAB用于存储各种变量和内容的内存空间。工作区可用于变量的显示和操作。

MATLAB的搜索路径

当用户在命令行窗口输入一行命令后,MATLAB将按照一定顺序依次寻找相关的命令对象,常用的命令对象包括变量名、内部函数名、程序文件名等。首先检查命令对象是不是变量,再检查是不是内部函数,再检查是不是程序文件,程序文件的搜索顺序首先在当前文件夹下搜索,然后再在文件搜索路径文件夹中的程序文件中搜索。

在这里插入图片描述

由此可以看出当遇到同名的函数名和变量名时,变量名优先。

如何设置文件搜索路径:

  • 用path命令设置文件搜索路径。如:>>ptah(path,‘e:\work’)

  • 用对话框设置文件搜索路径

在这里插入图片描述

1.2 MATLAB数值数据

数值数据类型的分类

  1. 整型

    • 无符号整数:无符号8/16/32/64位整数
    • 带符号整数:带符号8/16/32/64位整数

    MATAB提供了数据类型转换函数来实现数据类型的转换,例如uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数

  2. 浮点型

    分为单精度和双精度类型,单精度型实数在内存中占用4个字节,而双精度型实数在内存中占用8个字节,所以双精度的数据精度更高。MATLAB一般默认双精度类型。

    • single函数:将其它类型的数据转换为单精度型。
    • double函数:将其它类型的数据转换为双精度型。
  3. 复数型

    复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用i或j来表示。

    • real函数:求复数的实部
    • imag函数:求复数的虚部

数值数据的输出格式

format命令的格式:format格式符

在这里插入图片描述

format只影响数据输出格式,不影响数据的计算和存储。

常用数学函数

(1)函数的调用格式为:

函数名(函数自变量的值)

函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例。

函数在运算时是将函数逐项作用于矩阵的每个元素上,所以最后运算的结果就是一个与自变量同型的矩阵。

在这里插入图片描述

(2)常用函数的应用

①三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后面加”d“,以示区别。

在这里插入图片描述

②abs函数可以求实数的绝对值、复数的模、字符串的ACSII码值。

在这里插入图片描述

③用于取整的函数有fix、floor、ceil、round。

  • round函数按照四舍五入的规则取整
  • cell向上取整
  • floor向下取整
  • fix固定取靠近0的整数,舍去小数取整

④求余函数:rem、mod

1.3 变量及其操作

变量本质上讲是内存单元的一个抽象。在MATLAB中,变量名是以字母开头,后接字母、数字或下画线的字符序列,最多63个字符。

变量名必须区分字母的大小写。

标准函数名以及命令名必须用小写字母。

赋值语句两种格式:

  • 变量=表达式
  • 表达式

在这里插入图片描述

如果语句后加分号,那么就不输出结果

预定义变量:是由系统本身定义的变量

  • 比如ans是默认赋值变量,当在命令窗口输入表达式时,表达式的值会自动赋给ans
  • i和j代表虚数单位
  • pi代表圆周率
  • NAN代表非数

变量的管理

(1)内存变量的删除与修改:在工作区进行

​ who命令与whos命令:
在这里插入图片描述

who命令只显示变量的名称,whos命令还会显示大小、所占字节数、数据类型等信息。

(2)内存变量文件

用于保存MATLAB工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件

  • save命令:创建内存变量文件

  • load命令:装入内存变量文件

    >>save mydata a x //创建内存变量文件,将a与x装入创建的文件
    >>load mydata//在下一次打开matlab导入上次存的数据
    
1.4 MATLAB矩阵的表示

矩阵的建立

  • 利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔。

在这里插入图片描述

  • 利用已建好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成

    >>A=[1,2;3,4;5,6];
    >>B=[-1,-2;-3,-4;-5,-6];
    >>C=[A,B;B,A]
    
    C =
    
         1     2    -1    -2
         3     4    -3    -4
         5     6    -5    -6
        -1    -2     1     2
        -3    -4     3     4
        -5    -6     5     6
    
  • 可以用实部矩阵和虚部矩阵构成复数矩阵

在这里插入图片描述

  • 冒号表达式

    格式:e1:e2:e3

    e1:初始值 e2:步长(省略默认为1) e3:终止值

在这里插入图片描述

  • linspace函数

    linspace(a,b,n)

    a是第一个元素,b是最后一个元素,n是元素总数,当n省略时自动产生100个元素

结构矩阵

由结构数据构成的矩阵就是结构矩阵。

格式:结构矩阵元素.成员名=表达式

例如要建立含有三个元素的结构矩阵a,在矩阵a中每个元素都是结构数据,而每个元素包含有3个成员,x1,x2,x3,这三个成员是由不同的数据类型组成的,我们只需要给结构矩阵a中的每个元素里的每个成员赋值就可以了。

在这里插入图片描述

单元矩阵

单元矩阵的各个元素就是不同类型的数据。

建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵元素用大括号括起来。
在这里插入图片描述

1.5 矩阵元素的引用

(1)通过下标来引用矩阵的元素

A(3,2)表示A矩阵第3行第2列的元素。如果给出的行下标和列下标大于原来矩阵的行列数,将自动扩展原来的矩阵

在这里插入图片描述

(2)通过序号引用

在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元素,一直到矩阵的最后一列元素。

矩阵元素的序号就是矩阵元素在内存中的排列顺序

在这里插入图片描述

sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号,调用格式为:D=sub2ind(S,I,J)

D为对应元素的序号,S是行数和列数组成的向量,I是转换矩阵元素的行下标,J是转换矩阵元素的列下标

ind2sub函数:将把矩阵元素的序号转换成对应的下标,其调用格式为:[I,J]=ind2sub(S,D)

S表示矩阵的行数和列数,D是序号,函数返回值为序号所对应的行下标和列下标,I是的dui’ying’yuan’s行下标,J是对应元素的列下标

利用冒号表达式获得子矩阵

子矩阵是指由矩阵中的一部分元素构成的矩阵。

A(i,:)       第i行的全部元素
A(,:j)       第j列的全部元素
A(i:i+m,k:k+m) 第i-i+m行内且在第k-k+m列中的                所有元素
A(i:i+m,:)  第i-i+m行的全部元素

end运算符:表示某一维的末尾元素下标。

利用空矩阵删除矩阵元素

将要删除的元素赋空矩阵即可

在这里插入图片描述

改变矩阵的形状

reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。

reshape函数只改变原矩阵的行数和列数,不改变原矩阵的元素个数及其存储顺序。

A( :):将矩阵A的每一列元素堆叠起来,成为一个列向量。

1.6 MATLAB基本运算
  • 算术运算

    (1)基本算数运算

    算数运算符:+、-、*、/(右除)、\(左除)、^(乘方)

    malab运算是在矩阵下进行的

    (2)点运算

    点运算符:.* ./ .\ .^

    两个矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型。

  • 关系运算

    < <= > >= == ~=(不等于)

    关系成立,关系表达式结果为1,否则为0

    当参与比较的量是两个同型的矩阵时,比较两矩阵相同位置的元素,最终结果是一个与原矩阵同型的矩阵,它的元素由0或1组成

    当参与比较的量是标量与矩阵时,则把标量与矩阵的每一个元素逐个比较

  • 逻辑运算

    &(与)、|(或)、~(非)

    若参与逻辑运算的是两个同型矩阵,对矩阵相同位置的元素逐个进行运算,最终结果是一个与原矩阵同型的矩阵,元素由0或1组成。

    当参与比较的量是标量与矩阵时,则把标量与矩阵的每一个元素逐个比较

优先级:算数运算>关系运算>逻辑运算,但是逻辑非运算是单目运算,它的优先级比双目运算要高。

1.7 字符串处理

在MATLAB中,字符串是由单引号括起来的字符序列

若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。

建立多行字符串,形成字符串矩阵:

在这里插入图片描述

在这里插入图片描述

字符串的操作

  • 字符串的执行

    格式:eval(s)

    作用:把参数字符串中的内容作为对应的matlab命令

在这里插入图片描述

  • 字符串与数值之间的转换

    • abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵
    • char函数可以把ACSII码矩阵转换为字符串矩阵

在这里插入图片描述

  • 字符串的比较

    字符串的比较有两种方法:利用关系运算符或字符串比较函数。

    • 关系运算符比较:两个字符串里的每个字符依次按ACSII值大小逐个进行比较,比较的结果是一个数值向量,向量中的元素要么是1,要么是0

0

  • 字符串比较函数用来判断字符串是否相等。

    • strcmp(s1,s2):用来比较字符串s1和s2是否相等,相等结果为1,不然为0
    • strcmp(s1,s2,n):用来比较两个字符串前n个字符是否相等,如果相等返回1
    • strcmpi(s1,s2):在忽略字母大小的前提下,比较s1和s2是否相等
    • strcmpi(s1,s2,n):在忽略字母大小的前提下,比较两个字符串前n个字符是否相等
  • 字符串的查找与替换

    • find(s1,s2):返回短字符串在长字符串中的开始位置
    • strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符串s3
  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值