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

数据类型识别函数

数据类型转换函数

相关推荐
rit84324992 小时前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
我找到地球的支点啦2 小时前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
Dev7z14 小时前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
fengfuyao98517 小时前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab
机器学习之心17 小时前
基于随机森林模型的轴承剩余寿命预测MATLAB实现!
算法·随机森林·matlab
rit843249919 小时前
基于MATLAB的环境障碍模型构建与蚁群算法路径规划实现
开发语言·算法·matlab
hoiii18719 小时前
MATLAB SGM(半全局匹配)算法实现
前端·算法·matlab
yong999020 小时前
MATLAB面波频散曲线反演程序
开发语言·算法·matlab
yugi98783821 小时前
基于MATLAB的一键式EMD、EEMD、CEEMD和SSA信号去噪实现
开发语言·matlab·信号去噪
youcans_1 天前
【STM32-MBD】(15)Simulink 模型开发之三相互补 PWM
stm32·单片机·嵌入式硬件·matlab·foc