当前位置: 首页 > news >正文

第七节 MATLAB数据类型

默认情况下,MATLAB ®存储所有数值变量为双精度浮点值。其他数据类型存储文本,整数或单精度值或单个变量中相关数据的组合。

MATLAB不需要任何类型声明或维度语句。当MATLAB遇到新的变量名称时,它将创建变量并分配适当的内存空间。

如果变量已经存在,则MATLAB将使用新内容替换原始内容,并在必要时分配新的存储空间。

例如:

total = 136;

上述语句创建一个名为total1x1矩阵,并将值136存储在其中。

MATLAB数据类型


MATLAB提供15种基本数据类型,分别是8种整型数据、单精度浮点型、双精度浮点型、逻辑型、字符串型、单元数组、结构体类型和函数句柄。每种数据类型存储矩阵或数组形式的数据。矩阵或数组的最小值是00,并且是可以到任何大小的矩阵或数组。

下表显示了MATLAB中最常用的数据类型:

数据类型描述
int88位有符号整数
uint88位无符号整数
int1616位有符号整数
uint1616位无符号整数
int3232位有符号整数
uint3232位无符号整数
int6464位有符号整数
uint6464位无符号整数
single单精度数值数据
double双精度数值数据
logical逻辑值为10,分别代表truefalse
char字符数据(字符串作为字符向量存储)
单元格阵列索引单元阵列,每个都能够存储不同维数和数据类型的数组
结构体C型结构,每个结构具有能够存储不同维数和数据类型的数组的命名字段
函数处理指向一个函数的指针
用户类用户定义的类构造的对象
Java类从Java类构造的对象

示例


使用以下代码创建脚本文件(datatype1.m):

str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)

当上述代码被编译和执行时,它产生以下结果:

Trial>> datatype1

str =

    'Hello World!'


n =

        2345


d =

        2345


un =

  uint32

   790


rn =

   5.6789e+03


c =

  int32

   5679

数据类型转换


MATLAB提供了各种用于将一种数据类型转换为另一种数据类型的函数。 下表显示了数据类型转换函数:

函数描述说明
char转换为字符数组(字符串)
int2str将整数数据转换为字符串
mat2str将矩阵转换为字符串
num2str将数字转换为字符串
str2double将字符串转换为双精度值
str2num将字符串转换为数字
native2unicode将数字字节转换为Unicode字符
unicode2native将Unicode字符转换为数字字节
base2dec将基数N字符串转换为十进制数
bin2dec将二进制数字串转换为十进制数
dec2base将十进制转换为字符串中的N数字
dec2bin将十进制转换为字符串中的二进制数
dec2hex将十进制转换为十六进制数字
hex2dec将十六进制数字字符串转换为十进制数
hex2num将十六进制数字字符串转换为双精度数字
num2hex将单数转换为IEEE十六进制字符串
cell2mat将单元格数组转换为数组
cell2struct将单元格数组转换为结构数组
cellstr从字符数组创建字符串数组
mat2cell将数组转换为具有潜在不同大小的单元格的单元阵列
num2cell将数组转换为具有一致大小的单元格的单元阵列
struct2cell将结构转换为单元格数组

数据类型确定


MATLAB提供了用于识别变量数据类型的各种函数。

下表提供了确定变量数据类型的函数:

函数描述说明
is检测状态
isa确定输入是否是指定类的对象
iscell确定输入是单元格数组
iscellstr确定输入是字符串的单元格数组
ischar确定项目是否是字符数组
isfield确定输入是否是结构数组字段
isfloat确定输入是否为浮点数组
ishghandle确定是否用于处理图形对象句柄
isinteger确定输入是否为整数数组
isjava确定输入是否为Java对象
islogical确定输入是否为逻辑数组
isnumeric确定输入是否是数字数组
isobject确定输入是否为MATLAB对象
isreal检查输入是否为实数数组
isscalar确定输入是否为标量
isstr确定输入是否是字符数组
isstruct确定输入是否是结构数组
isvector确定输入是否为向量
class确定对象的类
validateattributes检查数组的有效性
whos在工作区中列出变量,其大小和类型

示例


使用以下代码创建脚本文件:

x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)

x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

运行文件后,产生以下结果:

x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 1177/50
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =

          1          2          3

ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0

相关文章:

  • Pytorch使用手册—自定义 C++ 和 CUDA 扩展(专题五十二)
  • Altium Design元件管理笔记
  • PolyBench基准程序详解:编译器优化评测指标
  • IDEA 出现 Cannot access aliyunmaven in offline mode 问题解决方案
  • 【愚公系列】《高效使用DeepSeek》020-专业术语解释
  • 脚本语言 Lua
  • K8S学习之基础四十:K8S配置altermanager发送告警到钉钉群
  • 在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库
  • 基于django美团美食销售数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • Redis 本地安装
  • 【Kafka】深入了解Kafka
  • 【文章写作】以数字素养筑基,绘治理现代化蓝图
  • CSS 用于图片的样式属性
  • STM32-汇编2、外设
  • EasyRTC嵌入式音视频通话SDK:微信生态支持、轻量化架构与跨平台兼容性(Linix/Windows/ARM/Android/iOS/LiteOS)
  • HarmonyOS 开发中条件渲染的选择:if/else 与取反操作的对比与实践
  • Chapter 4-16. Troubleshooting Congestion in Fibre Channel Fabrics
  • AcWing 838:堆排序 ← 数组模拟
  • (C语言)递归求整数的二进制(递归求法)(C语言教学)
  • VSCode创建VUE项目(三)使用axios调用后台服务
  • 李家超:明日起香港特区护照持有人可免签入境阿联酋
  • “远践”项目启动公益生态圈,上海青少年公益力量蓬勃生长
  • 训练孩子的科学思维,上海虹口推出“六个一百”旗舰工程
  • 外交部:中方期待印巴巩固和延续停火势头,避免冲突再起
  • 库尔德工人党决定自行解散
  • 国家统计局今年将在全国开展两次人口固定样本跟访调查