Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)

常用数据类型

numeric 数值
char 字符
logical 逻辑
cell 单元、细胞、元胞
struct 结构

数值型

整数:带符号和无符号
浮点数:单精度和双精度

在缺省(默认)状态下,Matlab 将所有的数都看作是双精度的浮点数。

双精度数值变量

IEEE标准,64位 (占8字节),11指数位,53数值位和一个符号位
double( ) 函数的转换

整形数据

uint8,无符号8位整形数据类型,值域为0至255,常用于图像表示和处理。(节省存储空间,提高处理速度)
int8( ), int16( ), int32( ),uint16( ), uint32( )
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第1张图片

整型数据的运算

1.不同整型数据之间不能进行运算

2.整型数据可以和双精度标量进行数值运算,结果为整数。在运算过程中保持浮点运算精度,最后将结果转换成整型。(整型数据不能与不是标量的双精度数组进行运算)

最大整数与最小整数

intmax和intmin函数

intmax=intmax(‘int32’)
intmin=intmin(‘int32’)
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第2张图片

Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第3张图片
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第4张图片

浮点数

浮点数包括单精度(占四个字节)和双精度(占八个字节),默认为双精度

浮点数转换函数

single:将数据转换成单精度浮点数
double:将数据转换成双精度浮点数
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第5张图片

最大和最小浮点数

Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第6张图片

复数

定义复数:
直接输入:
z=3+4i
使用complex函数:
z=complex(3,4);
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第7张图片

字符与字符串

字符串必须用单引号

str1='hello world'

字符是由多个字符组成的字符行向量

str2=['h','e','l','l','o']

字符数组必须是放的,即每行的字符个数必须想等

str3=['h','e','l';'l','o','w']

Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第8张图片
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第9张图片
matlab中字符是以ASCII码存储的,因而区分大小写,可用double函数查看字符的ASCII码

字符串的生成

直接赋值

str1='hello';
str2='world';
str3=[str1,str2]

Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第10张图片
使用char函数:

str=char([77,97,116,108,97,98])
str=char(str1,str2)

Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第11张图片

字符串与数值数组

按 ASCII 码转换:
字符数组到数值数组:double
数值数组到字符串:char
直接转换数值数组与字符数组:
数值矩阵到字符数组:num2str、int2str、mat2str
字符数组到数值数组:str2num
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第12张图片char 的输入参数范围为 [0,65535],当输入参数中有小数时,直接将小数部分舍去。
num2str 直接将每个数字转换成字符
mat2str 把整个矩阵转换成字符行向量,包括矩阵中的方括号、空格 和 分号(逗号自动去除)
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第13张图片
数值数组转换为字符数组后,表面上看象一个数值数组,但此时的元素是字符而不是数字
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第14张图片

double、char 是按 ASCII码 进行转换

num2str、int2str、mat2str、str2num 是直接进行转换

字符串的合并

水平合并

直接使用中括号:

str1=['hello','world']

使用strcat函数:

str2=strcat('hello','world')

垂直合并

直接使用中分号:

str3=['hello  ';'myworld']

使用strvcat函数

str4=strvcat('hello','myworld')

允许字符串

eval

str='1+2';
a=eval(str)
str1='figure(1); mesh(peaks(60))'
str2='figure(2); waterfall(peaks(60))'
eval(str1)
eval(str2)
strcmp 比较字符串
strcmpi 忽视大小写比较字符串
upper 转换为大写
blanks 产生空字符串
strmatch 查找匹配的字符串
strjust 对其字符数组,包括左对齐、右对齐和居中
strrep 替换字符串
strncmp 比较字符串的前n个字符
lower 转换为小写
deblank 删除字符串中的空格
findstr 在一个字符串中查找另一个字符串
strtok 返回字符串中第一个分隔符

细胞数组

Matlab 从 5.0 版开始引入了一种新的数据类型 — 细胞 ( cell ),该结构可以把不同类型的数据纳入到一个变量中。
普通数组中的每个元素都必须具有相同的数据类型,而细胞则没有此要求。
细胞变量的表示方法类似于带有下标的数组,但这些下标不是用圆括号括起来,而是使用大括号

定义细胞数组

直接定义:

A=[1 2;3 4];
str='hello';
M={1:4,A,str};
celldisp(M);

用 cell 函数预先分配存储空间,然后对细胞的每个元素逐个赋值:

cell(m,n);

生成一个m行n列的细胞数组
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第15张图片
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第16张图片
Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第17张图片

相关函数

celldisp 输出细胞变量的内容
cellplot 用图形方式显示细胞变量
iscell 判别一个变量是否为细胞变量

Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第18张图片Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)_第19张图片

你可能感兴趣的:(MATLAB)