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

数据类型识别函数

数据类型转换函数

相关推荐
cici158745 小时前
基于LSTM算法的MATLAB短期风速预测实现
开发语言·matlab
jllllyuz5 小时前
室外可见光通信信道建模与MATLAB实现(直射链路与反射链路)
开发语言·matlab
沐欣工作室_lvyiyi6 小时前
IIR数字带通滤波器(论文+源码)
算法·matlab·毕业设计·数字滤波器
EW Frontier7 小时前
【无人机】突破无人机检测瓶颈!基于 EMD/EEMD 与机器学习的射频指纹分解新方案【附MATLAB+python代码】
机器学习·matlab·无人机·无人机检测·无人机识别
沐欣工作室_lvyiyi7 小时前
基于窗函数法的FIR滤波器设计(论文+源码)
人工智能·matlab·毕业设计·语音识别·fir滤波器
Evand J11 小时前
【MATLAB程序,一维非线性EKF与RTS】MATLAB,用于一维的位移与速度滤波和RTS平滑/高精度定位,带滤波前后的误差对比
开发语言·matlab·卡尔曼滤波·rts平滑·正向滤波
米饭的白色19 小时前
matlab 中 `对数坐标` 画图下的 `hold on` 位置对坐标轴刻度的影响
开发语言·matlab
TTGGGFF1 天前
控制系统建模仿真(八):PID 控制器的参数整定
matlab·simulink·pid
ytttr8731 天前
基于MATLAB实现时间序列小波相干性分析
开发语言·matlab