数据类型 _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.数据类型识别与转换

数据类型识别函数

数据类型转换函数

相关推荐
ytttr87317 小时前
MATLAB SIFT图像配准实现
算法·机器学习·matlab
南宫萧幕17 小时前
HEV能量管理控制算法实战:从MPC/RL理论基础到Simulink闭环建模
算法·matlab·汽车·控制·pid
IT猿手17 小时前
SCI一区:章鱼优化算法(Octopus Optimization Algorithm, OOA)求解23个测试函数,出图丰富,提供完整MATLAB代码
开发语言·算法·matlab
leo__52019 小时前
单载波中继系统资源分配算法MATLAB仿真程序
算法·matlab·unity
南宫萧幕20 小时前
Python与Simulink联合仿真:基于DQN的HEV能量管理策略建模与全链路排雷实战
开发语言·人工智能·python·算法·机器学习·matlab·控制
yongui478341 天前
基于卷积神经网络(CNN)的盲源分离MATLAB实现
人工智能·matlab·cnn
listhi5201 天前
基于SVM和决策树的孤岛检测MATLAB实现
决策树·支持向量机·matlab
Evand J1 天前
【MATLAB例程】多传感器协同DOA目标跟踪与EKF滤波,输出动态目标轨迹、轨迹误差对比分析
开发语言·matlab·目标跟踪·滤波·定位·导航
简简单单做算法1 天前
基于Qlearning强化学习和Parzen窗的图像分割算法matlab仿真
matlab·图像分割·强化学习·qlearning·parzen窗
fengfuyao9852 天前
MATLAB实现自适应动态规划(ADP)方法
matlab·动态规划·代理模式