MATLAB学习笔记02-MATLAB的数据类型
MATLAB学习笔记
第一章MATLAB的数据类型
文章目录
- MATLAB学习笔记
- 一、整数类型
- 1.MATLAB中的整数类型
- 2.MATLAB中的取整函数
- 二、浮点数类型
- 1.MATLAB中浮点数类型
- 2.浮点数参与的运算
- 3.复数
- 4.无穷量(Inf)和非数值量(NaN)
MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这六种基本的数据类型都是按照数组形式存储和操作的。
基本的数值类型主要有整数、单精度浮点数和双精度浮点数。
一、整数类型
MATLAB中提供了8种内置的整数类型,这8种类型的存储占用位数、能表示的数值范围和装换函数均不相同。
1.MATLAB中的整数类型
整数类型 | 数值范围 | 转换函数 |
---|---|---|
有符号8位整数 | -27~27-1 | int8 |
无符号8位整数 | 0~2^8-1 | uint8 |
有符号16位整数 | -215~215-1 | int16 |
无符号16位整数 | 0~2^16-1 | uint16 |
有符号32位整数 | -231~231-1 | int32 |
无符号32位整数 | 0~2^32-1 | uint32 |
有符号64位整数 | -263~263-1 | int64 |
无符号64位整数 | 0~2^64-1 | uint64 |
不同的整数类型所占用的位数不同,因此能够表示的数值范围也不同,在实际应用中,应根据实际需求合理选择合适的整数类型。
由于MATLAB中数值的默认存储类型是双精度浮点数,因此将变量设置为整数类型时,需要使用相应的转换函数,将双精度浮点数装换为指定的整数类型。
在转换过程中,MATLAB默认将待转换数值转换为与之最接近的整数值。例如。
>> x=1.5x =1.5000>> y=int8(x)y =int82>> whosName Size Bytes Class Attributesx 1x1 8 double y 1x1 1 int8
不同的整数类型所占用的位数不同,因此能够表示的数值范围也不同,在实际应用中,应根据实际需求合理选择合适的整数类型。
由于MATLAB中数值的默认存储类型是双精度浮点数,因此将变量设置为整数类型时,需要使用相应的转换函数,将双精度浮点数装换为指定的整数类型。
在转换过程中,MATLAB默认将待转换数值转换为与之最接近的整数值。例如
>> a=2^8a =256>> b=int8(a)b =int8127
>> %由于不同的整数类型能够表示的数值范围不同,
因此当计算结果超出相应的整数类型能够表示的范围时,
就会出现一处错误,运算结果被置为该整数类型能够表示的最大值或最小值。
另外,这些转换函数也可以将其他数据类型的数据装换为指定的数据类型。在不超过数值范围的情况下,任意两个整数类型之间也可以通过函数进行装换。同时,由于不同的整数类型能够表示的数值范围不同,因此当计算结果超出相应的整数类型能够表示的范围时,就会出现一处错误,运算结果被置为该整数类型能够表示的最大值或最小值。
2.MATLAB中的取整函数
MATLAB中还包含了几类不同运算法则的取整函数,也可以把浮点数转化成整数。这些取整函数即相应的转换方式如下表
函数 | 运算法则 | 备注 |
---|---|---|
floor(x) | 向下取整 | 不大于其最大的整数 |
ceil(x) | 向上取整 | 右取整 |
round(x) | 去最接近的整数,如果小数部分是0.5,则向绝对值大的方向取整 | 正数四舍五入,负数四舍五入后填负号 |
fix(x) | 向0取整 | 距离0最近的整数 |
>> floor(1.2)ans =1>> floor(2.6)ans =2>> floor(-2.1)ans =-3>> ceil(1.2)ans =2>> ceil(2.1)ans =3>> ceil(-2.1)ans =-2>> round(1.3)ans =1>> round(2.5)ans =3>> round(-2.5)ans =-3>> fix(1.2)ans =1>> fix(2.8)ans =2>> fix(-2.9)ans =-2
二、浮点数类型
1.MATLAB中浮点数类型
MATLAB中提供了单精度浮点数类型和双精度浮点数类型,其存储位宽、能够表示的数值范围、数值精度各方面均不相同,如下表:
浮点数类型 | 存储位宽 | 各位数的意义 | 数值范围 | 转换函数 |
---|---|---|---|---|
单精度 | 32 | 0-22位表示小数部分 23-30位表示指数部分 31位表示符号(0正1负) | 1.17549e-38~~ 3.40282e38 -3.40282e38~~ -1.17549e-38 | single |
双精度 | 64 | 0-51位表示小数部分 52-62位表示指数部分 63位表示符号(0正1负) | 2.22507e-308~~ 1.79769e308 -1.79769e308~ -2.22507e-308 | double |
由上表可知,单精度浮点类型的占用位数少,因此占用内存小,因此能够表示的数值范围和数值精度都比双精度浮点类型小。
由于MATLAB中的默认数值类型为双精度浮点类型,因此与创建整数类型数值一样,也可以通过转换函数来实现单精度浮点类型。
>> x=3x =3>> whosName Size Bytes Class Attributesx 1x1 8 double
双精度浮点数参与运算时,返回值的类型依赖与参与运算的其他数据类型。参与运算的其他数据类型为逻辑型、字符型时,返回结果为双精度浮点型;参与运算的其他数据为整数类型,返回结果为相应的整数类型;参与运算的其他数据类型为单精度浮点型时,返回结果为相应的单精度浮点型。
>> x=3x =3>> whosName Size Bytes Class Attributesx 1x1 8 double >> y=single(x)y =single3>> whosName Size Bytes Class Attributesx 1x1 8 double y 1x1 4 single >> z= int8(4)z =int84>> whosName Size Bytes Class Attributesx 1x1 8 double y 1x1 4 single z 1x1 1 int8 >> xz=x*zxz =int812>> xy=x*yxy =single9>> yz=y*z
错误使用 *
整数只能与同类的整数或双精度标量值组合使用。
(注意:在MATLAB中,单精度浮点类型不能与整数类型进行算术运算)
2.浮点数参与的运算
>> a=uint32(120);b=single(22.809);c=73.226;
>> ab=a*b
错误使用 *
整数只能与同类的整数或双精度标量值组合使用。>> ac=a*cac =uint328787>> bc=b*cbc =single1.6702e+03
3.复数
复数包括实部和虚部两部分。MATLAB中默认使用i或j作为虚部标志。创建复数时,可以直接按照复数形式进行输入或者利用complex函数。MATLAB库函数中关于复数的相关函数如下表:
函数 | 说明 |
---|---|
real(z) | 返回复数z的实部 |
abs(z) | 返回复数z的模 |
conj(z) | 回复数z的共轭复数 |
imag(z) | 返回复数z的虚部 |
angle(z) | 返回复数z的辅角 |
complex(a,b) | 以a为实部,b虚部创建复数 |
>> z=complex(1,2)z =1.0000 + 2.0000i>> real(z)ans =1>> abs(z)%复数的模ans =2.2361>> sqrt(5)%squr是求根号ans =2.2361>> conj(z)ans =1.0000 - 2.0000i>> imag(z)ans =2>> angle(z)ans =1.1071
4.无穷量(Inf)和非数值量(NaN)
MATLAB中使用Inf和-Inf分布代表正无穷量和负无穷量,NaN表示非数值量。正负无穷量的产生一般是由于运算溢出,产生了超出双精度浮点数数值范围的结果,非数值量是由于0/0或Inf/Inf类型的非常运算而参数的,这两个NaN彼此是不相等的。
>> a=0/0a =NaN>> b=log(0)b =-Inf
MATLAB学习笔记02-MATLAB的数据类型相关推荐
- MATLAB学习笔记04—MATLAB的字符与字符串类型
MATLAB学习笔记 第4章字符和字符串类型 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 MATLAB学习笔记 一.字符串属性示例 二.字符串数组的索引 三.字符串中的 ...
- MATLAB学习笔记之matlab基础知识
MATLAB基础知识 MATLAB系统环境 MATLAB操作界面组成 MATLAB主窗口 命令行窗口 当前文件夹窗口 工作区窗口 MATLAB的搜索路径 MATLAB数值数据 数值数据类型的分类 整型 ...
- [MATLAB学习笔记]基于MATLAB的坐标系变换及飞行器姿态运动显示
描述三维空间物体的运动通常是在指定的坐标系下进行,在不同的坐标系下物体运动的轨迹和姿态不尽相同.求解物体在不同坐标系下的位置和姿态的关键在于求解不同坐标系之间的变换矩阵. 以从地心坐标系到体坐标系为例 ...
- MATLAB学习笔记之matlab程序流程控制
MATLAB程序流程控制 顺序结构程序 程序和程序设计 程序的三种基本结构 脚本文件和函数文件 文件的建立 顺序结构 数据的输入 数据的输出 程序的暂停 a=input('a='); b=input( ...
- matlab 彩色变换,MATLAB学习笔记 彩色变换
MATLAB学习笔记 彩色变换 MATLAB学习笔记 彩色变换 MATLAB学习笔记 彩色变换 interp1q(x, y, xi) 线性内插,获得xi点的yi值(直线) x 为列向量 设置x轴各个点 ...
- Matlab学习笔记5——fprintf
Matlab学习笔记5--fprintf 将数据写入文本文件 语法 fprintf(fileID,formatSpec,A1,-,An) fprintf(formatSpec,A1,-,An) nby ...
- MATLAB学习笔记(一)
MATLAB 一.安装的目录结构 二.常用的菜单及工具 布局 设置路径 设置工作路径 三.常用命令 四. 基础知识 数据类型 复数类型 `inf 和 NaN` 字符与字符串 函数句柄 结构体 结构体的 ...
- MATLAB学习笔记——二维和三维绘图
MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...
- MATLAB学习笔记2:MATLAB基础知识(下)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
- matlab学习笔记3(控制系统仿真)
matlab学习笔记3(控制系统仿真) 1.典型二阶系统 H ( S ) = ω n 2 S 2 + 2 ξ ω n S + ω n 2 H\left(S\right)=\frac{\omega_n^ ...
最新文章
- elasticsearch建立索引操作的API
- 为什么我们使用Nginx而不是Apache?
- 常考数据结构与算法:两个链表的第一个公共结点
- [***]HZOJ 跳房子
- ArrayList、HashTable、List、Dictionary的演化及如何选择使用
- Spring框架中的SpringFactoriesLoader
- Android加载大图、多图解决方案
- Angular自学笔记(?)ContentChild和ContentChildren
- Hello boke!
- Redhat或者Centos 手动安装htop
- PaddlePaddle飞桨OCR文本检测——识别图片文字结果并保存为txt(五)
- 如何处理不能复现的bug?软件测试工程师避坑指南
- Struct嵌套使用
- visual studio code快捷键整理成图片
- 绝地求生要java吗_绝地求生卡盟_【Java】几种典型的内存溢出案例,都在这儿了!...
- IntelliJ IDEA导包快捷键以及创建方法
- ilitek win10 触摸屏驱动_德国布拉本达(Brabender)触摸屏维修常见故障
- c语言排快速排序过程,C语言中快速排序法怎么排
- Linux命令:ln -s
- 雷电2接口_Intel发布雷电4接口,相比之前的雷电3,雷电4都改进了什么?