MATLAB 数据类型:您需要知道的一切

已发表: 2020-09-16

MATLAB 提供了多种存储数字和变量的方法。 所有的数字都等价于实际的数字实数。 最大数有上限,非零数的绝对值有下限。 这是由于与实数相比,处理设备的内存有限,实数可能是无限的。

由于空间有限,MATLAB 变量不能存储无理数。 例如,将 pi 的值返回到近似值。 MATLAB 变量中表示的值集是有限的。 MATLAB 中的数据类型将有助于处理此限制。

所有 MATLAB 变量都属于一个类,其中不同的类具有不同的特性,适合表示不同类型的数据,无论是数值、文本还是复杂数据。

请记住:数组中的所有给定元素都应该属于同一类型。

MATLAB 总共提供了 16 种基本类型,MATLAB 中的数据类型定义为:

  • 定义的值集
  • 可用于对这些值执行的操作集

资源

目录

数值类型

数值类型包括有符号和无符号整数、单精度、双精度浮点数。 下面列出了数值变量及其特征:

双倍的双精度数组
  • MATLAB 中的默认数值数据类型(类)
  • 存储为 64 位(8 字节)浮点值
  • 范围-

负数 = -1.79769 x 10 308和 -2.22507 x 10 -308

正数 = 2.22507 x 10 -308和 1.79769 x 10 308

单身的单精度数组
  • 存储为 4 字节(32 位)浮点值
  • 范围-

负数 = -1.79769 x 10 308和 -2.22507 x 10 -308

正数 = 2.22507 x 10 -308和 1.79769 x 10 308

整数8 8 位有符号整数数组
  • 存储为 1 字节(8 位)有符号整数
  • 范围是 -2 7到 2 7 -1
整数16 16 位有符号整数数组
  • 存储为 2 字节(16 位)有符号整数
  • 范围 -2 15到 2 15 -1
整数32 32 位有符号整数数组
  • 存储为 4 字节(32 位)有符号整数
  • 范围是 -2 31到 2 31 -1
整数64 64 位有符号整数数组
  • 存储为 8 字节(64 位)有符号整数
  • 范围是 -2 63到 2 63 -1
uint8 8 位无符号整数数组
  • 存储为 1 字节(8 位)无符号整数
  • 范围是 0 到 2 8 -1
uint16 16 位无符号整数数组
  • 存储为 2 字节(16 位)无符号整数
  • 范围是 0 到 2 16 -1
uint32 32 位无符号整数数组
  • 存储为 4 字节(32 位)无符号整数
  • 范围是 0 到 2 32 -1
uint64 64 位无符号整数数组
  • 存储为 8 字节(64 位)无符号整数
  • 范围是 0 到 2 64 -1

阅读: 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 中使用。