MATLAB 数据类型:您需要知道的一切
已发表: 2020-09-16MATLAB 提供了多种存储数字和变量的方法。 所有的数字都等价于实际的数字实数。 最大数有上限,非零数的绝对值有下限。 这是由于与实数相比,处理设备的内存有限,实数可能是无限的。
由于空间有限,MATLAB 变量不能存储无理数。 例如,将 pi 的值返回到近似值。 MATLAB 变量中表示的值集是有限的。 MATLAB 中的数据类型将有助于处理此限制。
所有 MATLAB 变量都属于一个类,其中不同的类具有不同的特性,适合表示不同类型的数据,无论是数值、文本还是复杂数据。
请记住:数组中的所有给定元素都应该属于同一类型。
MATLAB 总共提供了 16 种基本类型,MATLAB 中的数据类型定义为:
- 定义的值集
- 可用于对这些值执行的操作集

资源

目录
数值类型
数值类型包括有符号和无符号整数、单精度、双精度浮点数。 下面列出了数值变量及其特征:
| 双倍的 | 双精度数组 |
负数 = -1.79769 x 10 308和 -2.22507 x 10 -308 正数 = 2.22507 x 10 -308和 1.79769 x 10 308 |
| 单身的 | 单精度数组 |
负数 = -1.79769 x 10 308和 -2.22507 x 10 -308 正数 = 2.22507 x 10 -308和 1.79769 x 10 308 |
| 整数8 | 8 位有符号整数数组 |
|
| 整数16 | 16 位有符号整数数组 |
|
| 整数32 | 32 位有符号整数数组 |
|
| 整数64 | 64 位有符号整数数组 |
|
| uint8 | 8 位无符号整数数组 |
|
| uint16 | 16 位无符号整数数组 |
|
| uint32 | 32 位无符号整数数组 |
|
| uint64 | 64 位无符号整数数组 |
|
阅读: MATLAB 中的 While 循环:您需要知道的一切
逻辑类型
真假值用逻辑值0和1表示。任何数值(非复数)都可以转换成逻辑表示。
语法:L = 逻辑 (x)
上述语句将 x 转换为任何逻辑值数组。 x 的非零元素转换为逻辑值 1(真),零值转换为逻辑值 0(假)。
字符和字符串类型
MATLAB 字符和字符串数组提供文本数据的存储。 字符序列是一个字符数组,与数字序列相比称为数字数组。
语法:c = 'up grad'
“up grad”是形成字符串数组的字符序列。 我们也可以将其视为一段包裹的文本。
元胞数组
元胞数组是一种 MATLAB 数据类型,其中包含称为cells的索引数据容器。 单元格可以包含任何类型的数据,通常包含不同长度的字符向量、数字、任意大小的数字数组。 一组单元格包含在 () 中,并且通过使用 {} 完成对单元格的访问,该 {} 用于创建、编辑或删除任何单元格函数。
语法: c = {s,m,i,l,e}
表
表格或面向列的数据需要表格,并且它作为列存储在文本文件或电子表格中。 它包含行和列变量。 每个变量可以是不同的数据类型和不同的大小,但每个变量需要具有相同的行数。

函数范围用于访问数据以创建、编辑和读取表数据。
结构
命名字段包含不同类型和大小的数据。 这里数据容器用于对相关数据及其类型进行分组,称为字段。 字段可以包含任何类型的数据。
使用点符号给出对结构中数据的访问。
格式:structname.fieldName。
例子:
标量结构用于存储患者记录,属于同一组。
患者(1).name = 'John Doe';
患者(1).billing = 127.00;
患者(1).test = [79, 75, 73; 180、178、177.5; 220、210、205];
函数句柄
函数句柄的使用主要是将函数(数字或字符)传递给另一个函数。 用于间接调用函数的变量可以命名为函数句柄。
要创建函数句柄,使用“@”运算符。
示例:要创建一个函数句柄来评估 a2 -b2 ,使用的函数是:
F = @(a,b) (a.^2 – b.^2);
数据类型识别
MATLAB 有一组用于识别数据类型的变量
| 日历时间 | 检查输入数据是否为日历持续时间数组 |
| iscellstr | 检查输入数据是否为字符向量元胞数组 |
| 伊塞尔 | 检查输入数据是否为元胞数组 |
| 伊斯爪哇 | 检查输入数据是否为 Java 对象 |
| 伊沙尔 | 检查输入数据是否为字符数组 |
| 是分类的 | 检查输入数据是否为分类数组 |
| 持续时间 | 检查输入数据是否为持续时间数组 |
| 伊塞纳姆 | 检查变量是否为枚举 |
| isfloat | 检查输入数据是否为浮点数组 |
| 日期时间 | 检查输入数据是否为日期时间数组 |
| 整数 | 检查输入数据是否为整数数组 |
| 稳定的 | 检查输入数据是否为表格 |
| 图形 | 对有效的图形对象句柄为真 |
| 非数字的 | 检查输入数据是否为数值数组 |
| 是对象 | 检查输入数据是否为 MATLAB 对象 |
| 是真实的 | 检查数组是否真实 |
| 字符串 | 检查输入数据是否为字符串数组 |
| 结构 | 检查输入数据是否为结构数组 |
| 验证属性 | 检查数组的有效性 |
| 时间表 | 检查输入数据是否为时间表 |
| 伊萨 | 检查输入数据是否具有指定的数据类型 |
| 不合逻辑的 | 检查输入数据是否为逻辑数组 |
| 是* | 检测状态 |
| 班级 | 对象类别 |
数据类型转换
以下函数用于在不同的 MATLAB 数据类型、数值数组、字符数组、元胞数组、结构体或表之间进行切换。
char – 字符数组
cellstr – 更改为字符向量元胞数组
int2str – 将整数转换为字符
mat2str - 将矩阵更改为字符
num2str – 将数字更改为字符数组
str2double – 将字符串更改为双精度值
str2num - 将字符数组或字符串更改为数值数组
native2unicode – 将数字字节更改为 Unicode 字符表示
unicode2native – 将 Unicode 字符表示更改为数字字节
base2dec – 将表示以 N 为底的数字的文本更改为十进制数
hex2dec – 将十六进制数的文本表示更改为十进制数
hex2num – 将 IEEE 十六进制格式更改为双精度数
num2hex – 将单精度和双精度数字更改为 IEEE 十六进制格式
table2array - 将表更改为同构数组
table2cell – 将表格更改为元胞数组
table2struct - 将表更改为结构数组
array2table – 将同构数组更改为表
cell2table – 将元胞数组更改为表格
struct2table – 将结构数组更改为表
cell2mat – 将元胞数组更改为基础数据类型的普通数组
cell2struct – 将元胞数组更改为结构体数组
mat2cell - 将数组更改为单元格包含子数组的单元格数组
num2cell - 将数组更改为具有一致大小的单元格的单元格数组
struct2cell – 将结构更改为元胞数组

另请阅读:数据结构中的递归:它是如何工作的、类型和何时使用
结论
从上面的文章中,我们对各种 MATLAB 数据类型进行了概述。 这些数据类型中的每一种对于 MATLAB 用户理解和有效使用 MATLAB 编程都非常重要。 MATLAB 因其精确的计算、语法和庞大的社区支持而在科学和工程领域非常流行。
如果您有兴趣了解有关 MATLAB、机器学习及其相关主题的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为在职专业人士设计,提供 450 多个小时的严格培训,30 多个案例研究和作业、IIIT-B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。
MATLAB 中使用了哪些不同的数据类型?
MATLAB 中的数据可以是数字或字符。 数字数据表示与您熟悉的数字和算术运算(例如加法和乘法)相对应的值。 字符数据是文本字符串,例如单词、字母或符号(例如“$”)。 可以使用与数字数据相同的语法访问字符数组的元素(例如,C('This is a character array') 返回数组 C 中包含字符串的元素,这是一个字符数组)。
MATLAB 中的结构是什么?
MATLAB 包括三类结构体:元胞数组、结构体和句柄数组。 元胞数组是包含不同类型元素的单个数据结构。 元胞数组实际上是一组结构,每个结构都包含数组的一个元素。 如果您使用 cell() 函数创建元胞数组,MATLAB 默认会用零填充数组。 结构是变量的集合,它们都具有相同的名称,但可能具有不同的类型。 MATLAB 将结构体作为元胞数组处理。 您只能在元胞数组中存储一个结构。 句柄数组是引用其他 MATLAB 数组或对象(如图形和图形)的容器。 您可以将多个句柄数组存储在一个元胞数组中。
matlab中如何识别数据类型?
这可以使用 matlab 中的 isa 命令来完成。 isa 命令的语法如下:isa(my_data)。 例如:如果想知道my_data的数据类型,可以使用isa命令为:isa(my_data) 这将返回如下文本:int64,int32,int16,uint8,uint32,uint64,complex64,complex128,char . 该命令只能在 matlab 中使用。
