许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  【MATLAB图解教程1】MATLAB基础知识:界面、变量与矩阵

【MATLAB图解教程1】MATLAB基础知识:界面、变量与矩阵

阅读数 33
点赞 0
article_banner

🍡1.1 MATLAB系统环境

🥟1.MATLAB操作界面的组成

 MATLAB主窗口

 命令行窗口

 当前 文件夹  窗口

 工作区窗口

🍭 (1)MATLAB主窗口

 功能区

 快速访问工具栏

 当前文件夹工具栏

🍦 (2)命令行窗口

命令行窗口用于输入命令并显示命令的执行结果

🍪(3)当前文件夹窗口 如何设置当前文件夹呢?

  1. 在当前文件夹工具栏或当前 文件夹窗口中选择某文件夹 为当前文件夹
  2. 使用cd命令

🥧(4)工作区窗口

用于观察程序中的变量,可以删除或者修改

🍇2.MATLAB的搜索路径

变量搜索

问题来了,我们使用同名变量导致系统预定义的sin函数被我们覆盖掉了

如果这时我们想要调用sin函数,怎么办呢?

可以在MATLAB工作区窗口删除定义的sin变 量,那么再用sin就代表内部函数了。

文件搜索路径

  • 用path命令设置文件搜索路径。例如: >> path(path,'e:\work')
  • 用对话框设置文件搜索路径。

如果在当前文件夹和搜索路径文件夹下建立了一个同名的M 文件,那么在命令行窗口输入文件名时,执行哪个文件? 如果用户建立的文件既没有保存在当前文件夹下,也没有 保存在文件搜索路径中,那么在命令行窗口输入文件名时, 会出现什么信息? 第一个问题根据MATLAB的搜索路径,程序文件的搜索顺 序是首先在当前文件夹中搜索,然后再在文件搜索路径 中的文件夹中搜索,所以执行的是当前文件夹下的M文件。 第二个问题,同样根据MATLAB的搜索路径,如果用户建 立的文件既没有保存在当前文件夹下,也没有保存在文 件搜索路径中,那么MATLAB就找不到这个文件,系统会 给出错误提示信息


🍈1.2 MATLAB数值数据

🍉1.数值 数据类型  的分类

🍊(1)整型

  • 无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、 无符号64位整数。
  • 带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、 带符号64位整数。
  • 无符号8位整数数据范围:00000000~11111111(0~2 8-1)。
  • 带符号8位整数数据范围:10000000~01111111(-2 7~2 7-1)。

🍋(2)浮点型

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

🍌(3)复型

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

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

🍍2.数值数据的输出格式

format命令的格式: format 格式符

注意:format命令只影响数据输出格式 ,而不影响数据的计算和存储。

🥭 3.常用数学函数

🍎(1)函数的调用格式

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

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

🍏(2)常用函数的应用

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

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

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

round函数是按照四舍五入的规则来取整。

ceil是向上取整,取大于等于这个数的第一个整数。

floor是向下取整,取小于等于这个数的第一个整数。

fix是固定取靠近0的那个整数,也就是舍去小数取整。

④常用函数举例

rem() : 取余函数

isprime() : 判断素数的函数

find  () : 返回非 0 元素的下标

       返回前k个非零元素的下标

                   find(vector,k)

                   或find(vector,k,‘first’)

       返回后k个非零元素的下标

               find(vector,k,'last')

注意: matlab的下标和我们学过的其他高级语言不同,它的下标是从1开始的。



🍐1.3 变量及其操作

🍑1.变量与赋值语句

在MATLAB中,变量名是以字母开头,后接字母、数字或下画线的字符序列, 最多63个字符。

此外:

  • 变量名区分字母的大小写。
  • 标准函数名以及命令名一般用小写字母。

赋值语句两种格式:

       变量=表达式

       表达式

🍒2.预定义变量

预定义变量是在MATLAB工作空间中驻留,由系统本身定义的变量。

常用的预定义变量:

  • ans是默认赋值变量
  • i 和 j 代表虚数单位
  • pi代表圆周率
  • NaN代表非数

🍓3.变量的管理

🫐(1)内存变量的删除与修改

直接在工作区里面,找到想要修改的变量,右击,选择删除或者重命名。

🥝(2)who命令与whos命令

who可以查看程序中现有的变量名

whos可以查看所有变量的size、bytes、class、attribuites

🍅(3)内存变量文件

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

 save命令:创建内存变量文件。  load命令:装入内存变量文件。



🫒 1.4 MATLAB矩阵的表示

🥥1.矩阵的建立

🥑(1)利用直接 输入法  建立矩阵:

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

🍆(2)利用已建好的矩阵建立更大的矩阵:

一个大矩阵可以由已经建立好的小矩阵拼接而成。

🥔(3) 可以用实部矩阵和虚部矩阵构成复数矩阵

🥕 2.冒号表达式

省略步长e2,则步长为1。例如, t=0:5与t=0:1:5等价

冒号表达式是指定首尾和步长来产生向量;

而linspace(a,b,n)则是知道首尾和总元素个数产生的。

当n省略时,自动产生100个 元素。

🌽3.结构矩阵和单元矩阵

🌶(1)结构矩阵

由结构数据构成的矩阵就是结构矩阵,结构矩阵里的每个元素就是结构数据类型。

格式为:

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

结构矩阵中的每一个元素内部还包含不同的成员,即其中数据类型不同,但是逻辑相关。以学生举例:(其中包含学号,姓名,性别;)

它的创建与C语言中的 结构体  很类似,往下看:

a(1).x1=10;a(1).x2='liu';a(1).x3=[1,3;3,3]; a(2).x1=20;a(2).x2='lu';a(2).x3=[2,2;3,4]; a(3).x1=30;a(3).x2='u';a(3).x3=[3,2;3,4];

如图变量区显示的就是一个结构矩阵

🫑(2)单元矩阵

建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵元素用大括号括起来。



🥒 1.5 矩阵元素的引用

🥬1.矩阵元素的引用方式

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

A(3,2)表示A矩阵第3行第2列的元素。

如果给出的行下标或者列下标超过原来矩阵的行或者列下标,MATLAB将会自动扩展原来的矩阵,并将扩展后没有赋值的矩阵元素的值设置为0。

🧄(2)通过序号来引用

  1. 在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元 素,然后存储第二列元素,…,一直到矩阵的最后一列元素。
  2. 矩阵元素的序号就是矩阵元素在内存中的排列顺序。

序号与下标是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)×m+i

🧅(3)矩阵中常用的两个函数

sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:

D = sub2ind ( [2,3] , [1,2;2,2] , [1,1;3,2] )

这个代码的意思是:把两行三列的矩阵里面下标为(1,1),(2,1),(2,3),(2,2)的元素对应的存储序号找出来赋值给D矩阵。

ind2sub函数:将把矩阵元素的序号转换成对应的下标,其 调用格式为:

找到三行三列的方阵里面序号为1,3,5的元素返回三个元素的下标,然后赋值给向量组 [ i , j ]

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

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

🍞3.利用空矩阵删除矩阵的元素

空矩阵是指没有任何元素的矩阵。

🍌4.改变矩阵的形状

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

注意:reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序

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

假定现在需要堆叠的矩阵有n个数,那么A(:)相当于reshape(A,n,1)



🍐1.6 MATLAB基本运算

🍑1.算术运算

🥝(1)基本算术运算

基本算术 运算符  :+(加)、-(减)、*(乘)、/(右除)、\(左除)、 ^(乘方)。

 MATLAB的算术运算是在矩阵意义下进行的。

 单个数据的算术运算只是矩阵运算的一种特例。

注意,MATLAB的运算是在矩阵意义下进行的,单个数据的算术运算只是矩阵运算的一种特例。

加减运算

 若两矩阵同型,则运算时两矩阵的相应元素相加减。

 若两矩阵不同型,则MATLAB将给出错误信息。

 一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的 每一个元素进行加减运算。

乘法运算

 矩阵A和B进行乘法运算,要求A的列数与B的行数相等,此时则 称A、B矩阵是可乘的,或称A和B两矩阵维数和大小相容。

 如果两者的维数或大小不相容,则将给出错误信息,提示用户 两个矩阵是不可乘的。

除法运算

在MATLAB中,有两种矩阵除法运算:右除/和左除\。 如果A矩阵是非奇异方阵,则B/A等效于B*inv(A),A\B等效 于inv(A)*B。

乘方运算

一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。

🥝(2)点运算

 点运算符:.*、./、.\和.^。

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

🫐2.关系运算

关系运算符:(大于)、>=(大于或等 于)、==(等于)、~=(不等于)。

当两个比较量是标量时,直接比较两数的大小。若关系成立,关系 表达式结果为1,否则为0。


当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标 量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩 阵,它的元素由0或1组成。

当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元 素按标量关系运算规则逐个比较,最终的关系运算的结果是一个与原矩阵同 型的矩阵,它的元素由0或1组成。

🍏3.逻辑运算

逻辑运算符:&(与)、|(或)和~(非)。

设参与逻辑运算的是两个标量a和b,那么运算规则为:

a&b a、b全为非零时,运算结果为1,否则为0。

a|b a、b中只要有一个为非零时,运算结果为1 。

~a 当a为零时,运算结果为1;当a为非零时,运算结果为0。

若参与逻辑运算的是两个同型矩阵,那么将对矩阵相同位置上的元 素按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的 矩阵,其元素由1或0组成。

若参与逻辑运算的一个是标量,一个是矩阵,那么将在标量与矩阵 中的每个元素之间按标量规则逐个进行运算,最终运算结果是一个 与矩阵同型的矩阵,其元素由1或0组成。


🍍1.7 字符串处理

🍏1.字符串的表示

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

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

建立一个字符串向量,然后对该向量做如下处理:

① 取第1~5个字符组成的子字符串。

② 将字符串倒过来重新排列。

③ 将字符串中的小写字母变成相应的大写字母,其余字符不变。

④ 统计字符串中小写字母的个数。

🍒 2.字符串的操作

🍇(1) 字符串的执行

格式: eval(s)    字符串

🍉(2)字符串与数值之间的转换

abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。

char函数可以把ASCII码矩阵转换为字符串矩阵。

🍍 (3)字符串的比较

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

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

字符串比较函数用于判断字符串是否相等,有4种比较方式,函数如下:

  • strcmp(s1,s2):用来比较字符串s1和s2是否相等,如果相等,返回结果为1,否则 返回0。
  • strncmp(s1,s2,n):用来比较两个字符串前n个字符是否相等,如果相等,返回1, 否则返回0。
  • strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相 等,返回1,否则返回0。
  • strncmpi(s1,s2,n):在忽略字符串大小写前提下,比较两个字符串前n个字符是否 相等,如果相等,返回1,否则返回0。

🥭(4)字符串的查找与替换

findstr(s1,s2):返回短字符串在长字符串中的开始位置。

strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符串s3。



如果文章对你有所帮助,还望能给点三连支持一下,非常感谢!!!  


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空