- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线版
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据导出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - if 语句
- MATLAB - if else 语句
- MATLAB - if…elseif else 语句
- MATLAB - 嵌套 if 语句
- MATLAB - switch 语句
- MATLAB - 嵌套 switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - for 循环
- MATLAB - while 循环
- MATLAB - 嵌套循环
- MATLAB - break 语句
- MATLAB - continue 语句
- MATLAB - end 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - 返回语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波器函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级
- MATLAB - map 函数
- MATLAB - mean 函数
- MATLAB - end 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - try...catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴绘图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面图
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换函数
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户自定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形式
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵求逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 数据类型
MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名时,它都会创建该变量并分配相应的内存空间。
如果变量已存在,则 MATLAB 会将原始内容替换为新内容,并在必要时分配新的存储空间。
例如:
Total = 42
上述语句创建一个名为“Total”的 1×1 矩阵,并在其中存储值 42。
MATLAB 中可用的数据类型
MATLAB 提供 15 种基本数据类型。每种数据类型都存储以矩阵或数组形式存在的数据。此矩阵或数组的尺寸最小为 0×0,可以增长到任何尺寸的矩阵或数组。
下表显示了 MATLAB 中最常用的数据类型:
序号 | 数据类型和描述 |
---|---|
1 | int8 8 位有符号整数 |
2 | uint8 8 位无符号整数 |
3 | int16 16 位有符号整数 |
4 | uint16 16 位无符号整数 |
5 | int32 32 位有符号整数 |
6 | uint32 32 位无符号整数 |
7 | int64 64 位有符号整数 |
8 | uint64 64 位无符号整数 |
9 | single 单精度数值数据 |
10 | double 双精度数值数据 |
11 | logical 逻辑值 1 或 0,分别表示真和假 |
12 | char 字符数据(字符串存储为字符向量) |
13 | 元胞数组 索引单元格的数组,每个单元格都可以存储不同维度和数据类型的数组 |
14 | 结构体 C 语言风格的结构体,每个结构体都有命名字段,可以存储不同维度和数据类型的数组 |
15 | 函数句柄 指向函数的指针 |
16 | 用户类 从用户定义的类构造的对象 |
17 | Java 类 从 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 | 对于句柄图形对象句柄为真 |
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
广告