【一】MATLAB基础知识

news/2024/11/24 13:53:34/

【一】MATLAB基础知识

1 数值数据类型的分类

整型

无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、 无符号64位整数。

带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、 带符号64位整数。

无符号8位整数数据范围:00000000-11111111(0-2的8次方-1)。

带符号8位整数数据范围:10000000-01111111(-2 的7次方-2的7次方-1)。

int8(0-255)

uint8(-128~127)

浮点型

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

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

复数型

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

real函数:求复数的实部

imag函数:求复数的虚部

2 常用函数

exp(A):以为底的指数函数

sin(A):三角函数

sind(A):三角函数(以角度为单位)

在这里插入图片描述

abs(A):取绝对值(可以求实数的绝对值、复数的模、字符串的ASCII码值)

在这里插入图片描述

fix(A),floor(A),ceil(A),round(A):取整函数

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

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQuLdNVq-1682065221784)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421151327102.png)]

3 变量及其操作

变量与赋值语句:

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

tips:

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

标准函数名以及命令名一般用小写字母。

可以通过函数who和whos查询当前变量

赋值语句两种格式:

变量=表达式

表达式

eg:

预定义变量

ans是默认赋值变量

i和j代表虚数单位

pi代表圆周率

NaN代表非数

内存变量文件:

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vuXzO8IR-1682065221784)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421151903739.png)]

4 矩阵的表示

矩阵的建立:

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

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

在这里插入图片描述

方法3:可以用实部矩阵和虚部矩阵构成复数矩阵。

在这里插入图片描述

冒号表达式:

第一种:

在这里插入图片描述

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

在这里插入图片描述

第二种:

在这里插入图片描述

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aeeius7Y-1682065221787)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421152415938.png)]

结构矩阵和单元矩阵

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

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

在这里插入图片描述

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

5 矩阵元素的引用

第一种:通过下标来引用

如果给出的行下标或列下标大于原来矩阵的行数和列数, 那么MATLAB将自动扩展原来的矩阵,并将扩展后没有赋值的矩阵.元素置为0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KVcUwfNp-1682065221789)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421152758413.png)]

第二种:通过序号来引用

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

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s0uMtBQO-1682065221789)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421153106445.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FB1nrBpd-1682065221790)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421153118508.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oj5VYeiI-1682065221791)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421153302221.png)]

6 子矩阵

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

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行的全部元素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HR9rpnhk-1682065221791)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421153452041.png)]

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

在这里插入图片描述

利用空矩阵删除矩阵的元素

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

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e87xGD62-1682065221793)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421153653399.png)]

改变矩阵的形状

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

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

在这里插入图片描述

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTx7IjxX-1682065221794)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421153746638.png)]

7 MATLAB基本运算

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

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为标量。

点运算

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

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

在这里插入图片描述

关系运算

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

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

在这里插入图片描述

逻辑运算

逻辑运算符:&(与)、|(或)和~(非)。 设参与逻辑运算的是两个标量a和b,那么运算规则为:

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

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

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

8 字符串处理

字符串表示

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

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

在这里插入图片描述

字符串执行

函数:eval(s)

s代表字符串

在这里插入图片描述

字符串与数值之间的转换

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

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

在这里插入图片描述

字符串的比较

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUvxBIkx-1682065221797)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421154733389.png)]

字符串比较函数用于判断字符串是否相等,有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。

字符串的查找与替换

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWBzQPT9-1682065221797)(C:\Users\59936\AppData\Roaming\Typora\typora-user-images\image-20230421154841492.png)]

1,s2,n):用来比较两个字符串前n个字符是否相等,如果相等,返回1, 否则返回0。

strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相 等,返回1,否则返回0。

strncmpi(s1,s2,n):在忽略字符串大小写前提下,比较两个字符串前n个字符是否 相等,如果相等,返回1,否则返回0。

字符串的查找与替换

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

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

[外链图片转存中...(img-yWBzQPT9-1682065221797)]

学习视频链接:科学计算与MATLAB语言_中南大学_中国大学MOOC(慕课) (icourse163.org)


http://www.ppmy.cn/news/47242.html

相关文章

耗时半月,终于把牛客网上的软件测试面试八股文整理成了PDF合集(测试基础+linux+MySQL+接口测试+自动化测试+测试框架+jmeter测试+测试开发)

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了&#xff0c;考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些程序员了。 这不&#xf…

软件生存周期

软件生存周期 同任何事物一样&#xff0c;一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的许 多阶段&#xff0c;一般称为软件生存周期。把整个软件生存周期划分为若干阶段&#xff0c;每个阶段的任务相对 独立&#xff0c;而且比较简单&#xff0c;便于不同人员…

嵌入式Linux(7):字符设备驱动--申请设备号

文章目录 1、字符设备和杂项设备的区别2、注册字符类设备号的两个办法第一种&#xff1a;静态分配一个设备号第二种&#xff1a;动态分配注销设备号 写代码不带参数测试&#xff08;动态分配&#xff09;&#xff1a;带参数测试&#xff08;静态设置&#xff09;&#xff1a; 建…

C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。

目录标题 引言缓存优化数据局部性 数据对齐&#xff1a;优化数据结构的布局&#xff0c;以提高内存访问速度。内存池&#xff1a;为对象分配使用预先分配的内存池&#xff0c;以减少动态内存分配和释放的开销。垃圾收集优化&#xff1a;针对使用垃圾收集的语言&#xff0c;优化…

jsp有哪些内置对象?作用分别是什么?

JSP(Java Server Pages)中有以下九个内置对象&#xff1a; 1.request: 表示客户端的HTTP请求。可以使用它来获取客户端提交的表单数据、URL参数、HTTP头等信息。 <!DOCTYPE html> <html> <head><title>获取request对象信息</title> </head&…

运行时内存数据区之方法区(二)

方法区的演进细节 首先明确&#xff1a;只有HotSpot才有永久代。BEA JRockit、IBMJ9等来说&#xff0c;是不存在永久代的概念的。原则上如何实现方法区属于虚拟机实现细节&#xff0c;不受《]Va虚拟机规范》管束&#xff0c;并不要求统一。Hotspot中方法区的变化&#xff1a; …

学系统集成项目管理工程师(中项)系列08b_合同管理(下)

1. 项目变更约定 1.1. 合同生效后&#xff0c;当事人不得因姓名、名称的变更或者法定代表人、负责人、承办人的变动而不履行合同义务 2. 违约责任的承担方式 2.1. 继续履行 2.2. 采取补救措施 2.3. 赔偿损失 2.4. 支付约定违约金或定金 3. 注意事项 3.1. 当事人的法律资…

业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员

视频&#xff1a;https://haokan.baidu.com/v?pdwisenatural&vid3050207991292418741 自媒体上的程序员群体有一个非常有意思的特点&#xff0c;就是特别愿意否定别人&#xff0c;特别喜欢说no&#xff0c;还有一个特点&#xff0c;特别不爱分享一些有用的技术和知识&…