1、MATLAB基础知识之数据类型

本文是参考书籍《MATLAB R2020a完全自学一本通 》自己整理的一些笔记,希望会给大家带来一些帮助。

目录

 1、数据类型   

1.1、数值类型

整型

浮点数类型

复数

无穷量(Inf)和非数值量(NaN)

1.2 、逻辑类型

1.3、字符与字符串

1.4、数组类型

1.5、单元数组类型

创建

 单元数组的寻访

单元数组的操作

1.6、结构体类型

 1.7map容器类型


 1、数据类型   

    MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。

1.1、数值类型

基本的数值类型包括整型、单精度浮点数、双精度浮点数
  • 整型

MATLAB整型类型
整型类型数值范围转换函数
有符号8位整数-2^{7}\rightarrow 2^{7}-1int8
无符号8位整数0\rightarrow 2^{8}-1uint8
有符号16位整数-2^{15}\rightarrow 2^{15}-1int16
无符号16位u0\rightarrow 2^{16}-1uint16
有符号32位整数-2^{31}\rightarrow 2^{31}-1int32
无符号32位整数0\rightarrow 2^{32}-1uint32
有符号64位整数-2^{63}\rightarrow 2^{63}-1int64
无符号64位整数0\rightarrow 2^{64}-1uint64
MATLAB中的取整函数
函数运算法则示例
floor(x)向下取整

floor(1.3)= 1

floor(-2.6)= -3

ceil(x)向上取整ceil(1.3) = 2
 round(x)

取最接近的整数

如果是0.5,向绝对值最大的方向取整

round(1.3) = 1

round(1.5) = 2

round(-1.5) = -2

fix(x)向0取整        

fix(1.5) = 1

fix(-1.5) = -1

  • 浮点数类型

MATLAB中提供了单精度浮点数类型和双精度浮点数类型,其存储位宽、能够表示的数值范围、数值 精度各方面均不相同,单精度浮点数转换函数为single,双精度浮点数转换函数double。
注意双精度浮点数在参与运算时:

(1)当参与运算的其他数据为逻辑类型、字符类型时,返回结果为双精度浮点数类型;

(2)当参与运算的其他数据为整数类型时,返回结果为相应的整数类型;

(3)当参与运算的其他数据为单精度浮点数类型时,返回结果为相应的单精度浮点数类型。

在MATLAB中,单精度浮点数类型不能与整数类型进行算术运算

  • 复数

关于复数的相关函数
函数说明函数说明
complex(a,b)以a为实部b为虚部创建复数abs(z)返回复数z的模

real(z)

返回复数z的实部conj(z)返回复数z的共轭复数
imag (z)返回复数z的虚部angle(z)返回复数z的幅角
  • 无穷量(Inf)和非数值量(NaN)

       Inf -Inf分别代表正无穷量和负无穷量,正负无穷量的产生一般是由于运算溢出,产生了超出双精度浮点数数值范围的结果;
       NaN表示非数值量。非数值量则是由于0/0或 Inf/Inf 类型的非正常运算而产生的,这两个NaN彼此是不相等的。
       除了异常运算结果,MATLAB 还提供了特定函数 Inf NaN 来创建指定数值类型的无穷量和非数值量, 生成结果默认为双精度浮点数类型。还有一种特殊的指数类型的数据叫作非数,通常表示运算得到的数值 结果超出了运算范围。非数的实部用NaN 表示,虚部用 InF表示。

1.2 、逻辑类型

MATLAB把任何非零数值当作真,把零当作假。所有关系和逻辑表达式的输出:对于真,输出为1 ;对于假,输出为 0。
关系操作符
关系操作符说明关系操作符说明
<小于<=小于等于
>大于>=大于等于
==等于~=不等于
逻辑运算符
&
|
~
除此之外MATLAB还提供逻辑关系:
(1) xor(x,y) 指令的功能为异或运算, x y 同为零(假)或非零(真)时返回 0 ,否则返回 1。
(2)any(x) 指令的功能为判断是否为零向量或零矩阵(向量或矩阵中的元素全部为零),如果是           非零 向量或非零矩阵,则返回1 ,否则返回 0。

1.3、字符与字符串

        字符串一般是ASCII 值的数值数组,它作为字符串表达式进行显示。其中字符串中的单引号是由两个连续的单引号来表示的。

1.4、数组类型

数组的元素可以是任意数据类型,例如可以是数值、字符串、指针等。
创建数组

注意:MATLAB数组的索引从1开始

MATLAB中可以使用冒号“:”来代表一系列数值,有时也使用它来定义数组(步长为1)

 

i:j:k  为创建从i开始、步长为j、到k结束的数字序列。

函数linspace(a,b,n)在区间[a,b]上创建一个有nn个元素的n个数把整个区间线性分隔。

当数组的元素个数为0时,就称数组为空。空数组是特殊的数组,它不含有任何元素。空数组主要用于 逻辑运算、数组声明、数组的清空等。

1.5、单元数组类型

       单元(Cell)数组是一种无所不包的广义矩阵。组成单元数组的每一个元素称为一个单元。每一个单元 可以包括一个任意数组,如数值数组、字符串数组、结构体数组或另外一个单元数组,因而每一个单元可以具有不同的尺寸和内存占用空间。其目的在于可以把不同类型的数据归并到一个数组中。
  • 创建

单元数组的创建区别于一般数组其用{}创建:

可用cell函数创建一个空的单元数组:

  •  单元数组的寻访

        在单元数组中,单元和单元中的内容是两个不同范畴的东西,因此,寻访单元和单元中的内容是两种 不同的操作。MATLAB为上述两种操作设计了相对应的操作对象:单元外标识( Cell Indexing )和单元内编址(Content Addressing)。
对于单元数组a,a (m,n) 指的是单元数组中第 m 行第 n 列的单元,而a {m,n} 指的是单元数组中第 m 行第n 列单元中的内容。

  • 单元数组的操作

单元数组的合并可通过赋值的方式合并;

单元数组的删除可通过向要删除的部分赋空值;

reshape(a,m,n)可改变单元数组的形状。

1.6、结构体类型

MATLAB中的结构体与 C语言中的结构体类似,一个结构体可以通过字段存储多个不同类型的数据。 因此,结构体相当于一个数据容器,把多个相关联的不同类型的数据封装在一个结构体对象中。

 两种创建结构体的方法分别是利用struct函数创建结构体和通过字段赋值创建结构体如下例:

 1.7map容器类型

     map的本意是映射,就是可以将一个量映射到另一个量。比如将一个字符串映射为一个数值,则该字符 串就是map 的键(key),数值就是 map 的数据(value)。
一个键可以是以下任何一种数据类型:
● 1×N字符串。
● 单精度或双精度实数标量。
● 有符号或无符号标量整数。
(1)创建map对象

(2)查看map对象 

(3)根据键获取map对象

 (4)从map对象中删除键值对

(5)添加keys/values

 

(6)修改keys
        如果需要在保持值不变的情况下对键名进行更改,则首先要删除键名和其对应的值,然后再添加一个 有正确键名的新条目。 

  (7)修改values

通过赋值操作,覆盖原有的值,即可对map对象中的值进    行修改。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值