打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Matlab数据&数组类型详解(1)数值数据
userphoto

2023.05.30 江苏

关注
Matlab中数据与数组有许多不同的格式。 例如,数值数据(numeric data)可以放在矩阵中。 真值(True)和假值(False)数据可以存储在逻辑数组(logical array)中。 日期和时间可以存储在日期时间数组(datatime array)中。有时存储数据的方法不止一种。 文本(Text)数据可以存储为字符数组(character array)或字符串(strings),有时也可以存储为分类变量(categorical variables)。 这些都是同构数据(homogeneous data)类型,因为每个元素都是同一个类。混合(Mixed)或异构数据(heterogeneous data)可以存储在表(table)、时间表(timetable)、元胞数组(cell array)或结构数组(structure array)中。 我们可以将上述这些数组类型视为容器,实际使用中哪一种更适合我们还是取决于手头的数据类型。
01
数值数据-整型
MATLAB具有四个有符号整数类(int)和四个无符号整数类(uint)。有符号类型能够处理负整数以及正整数,但表示的数字范围不如无符号类型广泛,因为有一个位用于指定数字的正号或负号。
无符号类型提供了更广泛的数字范围,但这些数只能为零或正数。
MATLAB 支持以 1 字节、2 字节、4 字节和 8 字节几种形式存储整型数据。当我们将包含小数的数据定义为整型时,会自动四舍五入
各类型的数据范围如下表所示
数据类型
取值范围
转换函数
有符号8位整数
-2e7到 2e7-1int8
有符号16位整数-2e15到 2e15-1int16
有符号32位整数-2e31到 2e31-1int32
有符号64位整数-2e63到 2e63-1int64
无符号8位整数0 到 2e8-1uint8
无符号16位整数0 到 2e16-1uint16
无符号32位整数0 到 2e32-1uint32
无符号64位整数0 到 2e64-1uint64
我们可以使用intmax()/intmin()函数来查看各数据类型的范围,例如
无符号类型同理:
对于整型类型,当你输入的数字超过了对应整型的取值范围,只会返回该整型的最大值或最小值。
整型与整型数据进行运算后仍为整型
整型与浮点型数据运算后也为整型,但运算结果会四舍五入。
02
数值数据-浮点型
MATLAB以双精度或单精度格式表示浮点数。默认为双精度。双精度浮点型数据同时也为Matlab的默认数据类型。
存储单精度(single)需要32位
用途
31
符号(0为正,1为负)
30-23
指数
22-0
小数
存储双精度(double)需要64位
用途
63
符号(0为正,1为负)
62-52指数
51-0小数
浮点型数据的取值范围可以用realmax/realmin函数获取
整型与浮点型转换操作如图所示
使用whos()函数可以查看已定义变量的类型及内存占用,可以看到双精度由于是64位所以需要8个字节的空间。
浮点型由于精度远高于整型因此作为matlab的默认数值数据类型,下面讨论一下浮点型数据的精度问题。
即使是双精度浮点型,它的位数也是有限的,面对一些数据时也会忽略掉超出位数的部分,例如计算sin(pi)
其结果并不是0,这是由于pi这类无限小数超出浮点型位数范围的数字被忽略了,因此会产生一定的误差。这类问题在所有的计算机和代码语言中都会出现。
使用eps函数可以输出对应浮点类型的精度
例如1加上该误差结果仍为1
误差会随着数值的增大而增大
后续会介绍一些类似符号运算等针对误差的操作。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python 数组操作指南:使用示例和方法解析
PHP中的数据类型及实例演示
[基础语法]-第003节:基础数据类型
C语言中强制类型转换总结
java,c,c语言之间基本数据类型的比较
MySQL数据库基础:数据类型及列类型
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服