Matlab 数据类型
Matlab 常用的数据类型有: 常用的数据类型有: numeric:数值 char:字符 logical:逻辑 : cell:单元、细胞、元胞 单元、细胞、 struct:结构 :
逻辑
字符
细胞 函 数 句 柄
Matlab7.1 中的数据类型表
数值型
数值型数据包括
整数:带符号和 整数:带符号和无符号 浮点数:单精度和 浮点数:单精度和双精度
在缺省(默认)状态下,Matlab 将所有的数都 在缺省(默认)状态下, 看作是双精度的浮点数。 看作是双精度的浮点数。 使用整型变量和单精度变量可以节约内存空间。 使用整型变量和单精度变量可以节约内存空间。
整数
Matlab 提供四种带符号整型和四种无符号整型 数据类型
带符号 8 位整型 带符号 16 位整型 带符号 32 位整型 带符号 64 位整型 无符号 8 位整型 无符号 16 位整型 无符号 32 位整型 无符号 64 位整型
str='Matrix'; double(str(3)); double(str); % 查看每一个字符的 查看每一个字符的ASCII码 码
字符串的生成
直接赋值
str1='Matrix'; str2='Laboratory'; str=[str1,str2];
使用 char 函数
str=char([77,97,116,108,97,98])
realmin('single'); realmax('double'); realmin('double'); realmax; realmin; realmax('double'); realmin('double');
复数
可以通过以下方式定义复数 直接输入: 直接输入: z=3+4i
虚部与虚数单位之间不能留空格 使用 complex 函数 z=complex(3,4) z=complex(3) z=complex(3,0)
变量的命名规则
变量名必须以字母开头,可包含字母(大小写)、 变量名必须以字母开头,可包含字母(大小写)、 以字母开头 数字和下划线 变量名长度不超过 65 ( Matlab6.5.1 版本以上 ) 变量名长度不超过 变量名区分大小写 变量名区分大小写
Matlab 常量
Matlab 中有一些预定义的变量,这些特殊变量称 中有一些预定义的变量, 为常量。 为常量。
整型数据可以参与的运算有下面两种: 整型数据可以参与的运算有下面两种:
相同整型数据之间的运算,结果为同类型的整数。 相同整型数据之间的运算,结果为同类型的整数。
不同的整型数据之间不能进行运算 例:int8(12)*int16(3) X
整型数据可以和双精度标量进行数值运算,结果为整数。 整型数据可以和双精度标量进行数值运算,结果为整数。 双精度标量进行数值运算 保持浮点运算精度, 在运算过程中保持浮点运算精度 最后将结果转换成整型。 在运算过程中保持浮点运算精度,最后将结果转换成整型。
举例
x1=int8(11); x2=int8(15.49); x3=int8(15.5); x4=int8(130); x5=uint8(255); x6=uint8(256); x7=uint8(-1); x1=11 x2=15 x3=16 x4=127 x5=255 x6=255 x7=0
整型数据的运算
数学软件实习
Matlab 数据类型
Matlab 文件操作介绍
文件操作是一种重要的输入输出方式, 文件操作是一种重要的输入输出方式 , Matlab 提供了一系列输入输出函数,专门用于文件操作。 提供了一系列输入输出函数,专门用于文件操作。 Matlab中的输入输出函数是以 语言标准库函数 中的输入输出函数是以C语言标准库函数 中的输入输出函数是以 中的输入输出函数为基础开发的, 中的输入输出函数为基础开发的,所以这些函数与 C语言的输入输出函数相类似。 语言的输入输出函数相类似。 语言的输入输出函数相类似 Matlab文件操作主要有三个步骤 : 首先 打开 文 文件操作主要有三个步骤: 首先打开 打开文 文件操作主要有三个步骤 然后对文件进行读写操作,最后要关闭文件。 读写操作 关闭文件 件,然后对文件进行读写操作,最后要关闭文件。 例:ex4file1.m
字符串相关函数
函数 strcmp strcmpi 功能 比较字符串 忽略大小写比较 字符串 转换为大写 产生空字符串 函数 功能 strrep 替换字符串 strncmp 比较字符串的前 个字 比较字符串的前n个字 符 lower 转换为小写 deblank 删除字符串中的空格 findstr 在一个字符串中查找另 一字符串 strtok 返回字符串中第一个分 空格, 隔符 ( 空格,回车和 Tab键 ) 前的部分 键
整型数据相关函数
浮点数相关函数
复数相关函数
其它相关函数
判断数据类型相关函数
字符与字符串
字符与字符串运算是各种高级语言不可缺少的 部分, 具有强大的字符处理能力。 部分,Matlab具有强大的字符处理能力。 具有强大的字符处理能力 字符串和字符数组
字符串必须用单引号括起来 字符串必须用单引号括起来 单引号
字符串的合并
垂直合并 垂直合并
直接使用中括号 str3=['Matrix 使用 strvcat 函数 str4=strvcat('Matrix','Laboratory') 在中括号中用分号实现垂直合并,必须保证每个字符 在中括号中用分号实现垂直合并, 分号实现垂直合并 长度相等, 串的长度相等,否则需用空格补齐 合并,自动为较短的字符串补充 补充空格 用 strvcat 合并,自动为较短的字符串补充空格 垂直合并得到的是一个字符数组 垂直合并得到的是一个字符数组 得到的是一个字符 '; 'Laboratory']
Matlab中经常使用的一些常量 中经常使用的一些常量
常量名 常量值 i,j pi eps Inf 虚数单位 圆周率 浮点运算相对精度 无穷大 常量名 常量值 realmin 最小的正浮点数 realmax 最大的正浮点数 NaN 不定值
数据类型
Matlab 数据类型的最大特点是每一种类型都是以 数组为基础, 数组为基础,Matlab 事实上把每种类型的数据都作为 数组来处理。 数组来处理。
取值范围
[-27,27 –1]
转换函数
int8
[-215 , 215 –1] int16 [-231 , 231 –1] int32 [-263 , 263 –1] int64 [0 , 28 –1] [0 , 216 –1] [0 , 232 –1] [0 , 264 –1] uint8 uint16 uint32 uint64
num2str、int2str、mat2str 、 、 字符数组到数值数组: 字符数组到数值数组:str2num
举例
a=[97,97.3;97.8,98]; str1=char(a); str2=num2str(a); str3=int2str(a); str4=mat2str(a);
char 的输入参数范围为 [0,65535],当输入参数中 ,
有小数时,直接将小数部分舍去。 有小数时,直接将小数部分舍去。
num2str 直接将每个数字转换成字符 mat2str 把整个矩阵转换成字符行向量,包括矩阵 把整个矩阵转换成字符行向量 行向量,
中的方括号、 分号(逗号自动去除) 中的方括号、空格 和 分号(逗号自动去除) 方括号
举例
str5=mat2str([97,97.3;97.8,98]); a=[1,2,3] b=num2str(a) c=2*a d=2*b 数值数组转换为字符数组后,表面上看象一个数值数 数值数组转换为字符数组后,表面上看象一个数值数 但此时的元素是字符而不是数字! 组,但此时的元素是字符而不是数字!
字符与字符串
字符串中的每个字符(包括空格) 字符串中的每个字符(包括空格)都是字符串的 一个元素
str='Matrix'; str(3) % 从 1 开始数起 size(str)
Matlab中字符是以 ASCII 码存储的,因而区分大 中字符是以 码存储的,因而区分大 小写, 小写,可用 double 函数查看一个字符的 ASCII 码
Hale Waihona Puke str1='Matrix Laboratory'
字符串是由多个字符组成的字符行向量 字符串是由多个字符组成的字符行向量
str2=['M','a','t','r','i','x']
字符数组必须是方的,即每行的字符个数必须相等 字符数组必须是方的,
str3=['M','a','t'; 'r','i','x']
ASCII 码 → 字符串
str=char(str1,str2)
生成一个字符数组, 生成一个字符数组,第一行为 str1,第二行为 str2 ,
字符串与数值数组
字符串、 字符串、字符数组与数值数组之间的转换
按 ASCII 码转换 字符数组到数值数组: 字符数组到数值数组:double 数值数组到字符串:char 数值数组到字符串: 直接将转换数值数组转换成字符数组 数值矩阵到字符数组: 数值矩阵到字符数组:
运行字符串
运行字符串所表示的表达式或命令: 运行字符串所表示的表达式或命令: eval
str='1+2'; a=eval(str) str='A=magic(3)'; eval(str) str1='figure(1); mesh(peaks(60))'; str2='figure(2); waterfall(peaks(60))'; eval(str1) eval(str2)