数据类型 _1:数值类型、字符串、函数句柄、Map

matlab中的基础数据类型主要包括 数值类型字符串结构体单元数组函数句柄等。

1. 数值类型

数值类型按数值在计算机中存储方式 进行分类,主要有 整数单精度浮点数双精度浮点数

matlab自动 进行内存的分配与回收

默认 情况下,matlab对所有数值 按照双精度浮点数类型进行存储。可以通过下面的转换函数将双精度浮点数转化为整数类型进行使用。

单、双精度的存储位宽、数值范围、数值精度如下

单精度浮点数 不能与 整数类型 直接相乘。用 realmax、realmin 求浮点数类型数据可表达的范围:

Matlab 复制代码
str1 = '双精度浮点数的范围: \t%g 到 %g\t 和 \t%g 到 %g\t \n';
str2 = '单精度浮点数的范围: \t%g 到 %g\t 和 \t%g 到 %g\t  \n';
fprintf(str1,-realmax,-realmin,realmin,realmax);
fprintf(str2,-realmax('single'),-realmin('single'),realmin('single'),realmax('single'));

eps在0处近似为2.2e-16。

复数complex

复数由实部和虚部组成。在matlab中,字符i和j默认作为虚部的标志。

Matlab 复制代码
z = complex(a,b)   %构造a为实部,b为虚部的复数
real(z)            %z的实部,即a
imag(z)            %z的虚部,即b
abs(z)             %z的模
conj(z)            %z的共轭复数
angle(z)           %z的辐角
无穷量inf和非数值量nan

使用 inf 或 -inf 表示正无穷和负无穷,一般由运算溢出产生。nan 表示非数值量,一般由类似 0/0 或 inf/inf类型的非正常运算产生。

非数

非数表示数值超出运算范围,非数的实部用 nan 表示,虚部用 Inf 表示

2. 字符与字符串

字符存储的是ASCII码,显示的是文本。

Matlab 复制代码
string = 'good boy'
whos
s1 = abs(string)
s2 = abs(string + '0')

3. 函数句柄

函数句柄可实现对函数的间接调用。@为创建函数句柄的操作符,对matlab库函数的.m文件或自主编写的内部函数,都可以创建函数句柄。格式为

Matlab 复制代码
function_handle = @function_filename
%function_filename ------是函数对应的 .m 文件或内部函数的名称
%@------句柄创建操作符
%function_handle------此变量保存了函数句柄,并在后续运算中作为数据流进行传递
Matlab 复制代码
f_handle = @sin
x = 0:0.25*pi:pi
f_handle(x)      % 实现对sin函数的调用
f1 = functions(f_handle)   %返回一个存储函数名称、函数类型、 .m文件位置的结构体
t = func2str(f_handle)   %将函数句柄转换为函数名称的字符串
f = str2func(t)          %将字符串代表的函数转换为函数句柄

4. map

map将key(键)和value (值)一一对应。

Matlab 复制代码
%创建
mapObj = containers.Map({key1,key2,...},{val1,val2,...});  %创建
mapObj = containers.Map({'key1','key2',...},{val1,val2,...});  %字符串创建
newMap = containers.Map()  %创建空Map对象,然后keys和values 对其赋值

rainfallMap = containers.Map(k,v)  %k,v分辨是键和值的变量,大小相等
%查看和读取对象
k = keys(rainfallMap)                    %全部键
v = values(rainfallMap);                       %全部值
vs = values(rainfallMap,{'jan','dec','annual'})  %对多个键访问
%访问
name = rainfallMap('may')  %通过键访问值
%删除
remove(rainfallMap,'jan')    %移除'jan'代表的键值
%添加
rainfallMap('maj') = 33      % 添加键值

%对键名修改:首先删除建模和对应的值,添加新键名和其值

5.数据类型识别与转换

数据类型识别函数

数据类型转换函数

相关推荐
IT猿手5 小时前
基于强化学习的多算子差分进化路径规划算法QSMODE的机器人路径规划问题研究,提供MATLAB代码
算法·matlab·机器人
fie88899 小时前
基于MATLAB的转子动力学建模与仿真实现(含碰摩、不平衡激励)
开发语言·算法·matlab
机器学习之心9 小时前
基于GRU门控循环单元的轴承剩余寿命预测MATLAB实现
深度学习·matlab·gru·轴承剩余寿命预测
简简单单做算法10 小时前
基于FFT粗估计和LS最小二乘法精估计的正弦信号参数估计和检测matlab仿真
matlab·最小二乘法·参数估计·fft粗估计·ls最小二乘法
kaikaile199510 小时前
基于MATLAB的滑动轴承弹流润滑仿真程序实现
开发语言·matlab
Not Dr.Wang42220 小时前
FIR数字滤波器设计的两种实现
matlab
3GPP仿真实验室20 小时前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
民乐团扒谱机1 天前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Evand J1 天前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
机器学习之心HML1 天前
MATLAB豆渣发酵工艺优化 - 基于响应面法结合遗传算法
matlab