MATLAB 数据类型

  • 数据类型

    MATLAB不需要任何类型声明或尺寸声明。每当MATLAB遇到新的变量名称时,它都会创建变量并分配适当的内存空间。如果变量已经存在,则MATLAB会用新内容替换原始内容,并在必要时分配新的存储空间。
    例如,
    
    Total = 42
    
    上面的语句创建一个名为“ Total”的1比1矩阵,并将值42存储在其中。
  • MATLAB中可用的数据类型

    MATLAB提供了15种基本数据类型。每种数据类型都存储矩阵或数组形式的数据。此矩阵或数组的大小最小为0×0,并且可以增长到任意大小的矩阵或数组。下表显示了MATLAB中最常用的数据类型-
    数据类型 说明
    int8 8位有符号整数
    uint8 8位无符号整数
    int16 16位有符号整数
    uint16 16位无符号整数
    int32 32位有符号整数
    uint32 32位无符号整数
    int64 64位有符号整数
    uint64 64位无符号整数
    single 单精度数值数据
    double 双精度数值数据
    logical 逻辑值1或0,分别表示true和false
    char 字符数据(字符串存储为字符向量)
    cell array 索引单元格数组,每个单元格能够存储不同维度和数据类型的数组
    structure 类似于C的结构,每个结构都具有能够存储不同维度和数据类型的数组的命名字段
    function handle 指向函数的指针
    user classes 从用户定义的类构造的对象
    java classes 从Java类构造的对象
    使用以下代码创建脚本文件-
    
    str = 'Hello World!'
    n = 2345
    d = double(n)
    un = uint32(789.50)
    rn = 5678.92347
    c = int32(rn)
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    str = Hello World!
    n =  2345
    d =  2345
    un = 790
    rn = 5678.9
    c =  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 True for Handle Graphics对象句柄
    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 = 23.540
    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