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

数据类型转换函数
