matlab变量与常量、数据类型

变量与常量

变量是任何程序设计语言的基本元素之一。
Matlab 并不要求对所使用的变量进行事先声明,也不需要指定变量类型,Matlab 会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。
在赋值过程中,如果变量已经存在,Matlab 会用新值代替旧值,并以新的变量类型代替旧的变量类型。

常量名常量值
i,j虚数单位
pi圆周率
inf无穷大
eps浮点运算相对精度
nargin输入变量数目
realmin最小的正浮点数
realmax最大的正浮点数
NaN不定值,如0/0
ans用于结果的缺省变量名
nargout输出变量数目

数据类型

Matlab 数据类型的最大特点是每一种类型都是以数组为基础,Matlab 事实上把每种类型的数据都作为数组来处理。

Matlab 常用的数据类型有:
numeric:数值
char:字符
logical:逻辑
cell:单元、细胞、元胞
struct:结构

数值型

数值型数据包括
整数:带符号和无符号
浮点数:单精度和双精度

在缺省(默认)状态下,Matlab 将所有的数都看作是双精度的浮点数。
使用整型变量和单精度变量可以节约内存空间

双精度数值变量

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

整形数据

uint8,无符号8位整形数据类型,值域为0至255,常用于图像表示和处理。(节省存储空间,提高处理速度)
int8( ), int16( ), int32( ),uint16( ), uint32( )
在这里插入图片描述在这里插入图片描述

整形数据的运算

整型数据可以参与的运算有下面两种:
相同整型数据之间的运算,结果为同类型的整数。
不同的整型数据之间不能进行运算
整型数据可以和双精度标量进行数值运算,结果为整数。在运算过程中保持浮点运算精度,最后将结果转换成整型。
整型数据不能与不是标量的双精度数组进行运算

最大整数与最小整数

可以用intmax和intmin函数来查询不同整形所能表示的最大整数和最小整数

浮点数

浮点数包括单精度(占4个字节)和双精度(占8个字节),缺省为双精度

浮点转换函数

single:将数据转换成单精度浮点数
double:将数据转换成双精度浮点数
在这里插入图片描述

最大浮点数和最小浮点数

可以用 realmax 和 realmin 函数来查询单精度和双精度所能表示的最大浮点数和最小浮点数。

复数

定义复数:
直接输入法:

z=3+4i

虚数与虚数单位之间不能留空格

使用complex函数

z=complex(3,4)

z=complex(3)等于complex(3,0)

字符与字符串

字符与字符串运算是各种高级语言不可缺少的部分,Matlab具有强大的字符处理能力
字符串必须用单引号括起来

str1='Matrix Laboratory'

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

str2=['M','a','t','r','i','x']

字符数组必须是方的,即每行的字符个数必须相等

str3=['M','a','t'; 'r','i','x']

字符串中的每个字符(包括空格)都是字符串的一个元素
在这里插入图片描述 Matlab中字符是以 ASCII 码存储的,因而区分大小写,可用 double 函数查看一个字符的 ASCII 码
在这里插入图片描述

字符串的生成

直接赋值

str1='Matrix';
str2='Laboratory';
str=[str1,str2]

使用 char 函数

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

生成一个字符数组,第一行为 str1,第二行为 str2

字符串与数值数组

字符串、字符数组与数值数组之间的转换
按 ASCII 码转换
字符数组到数值数组:double
数值数组到字符串:char

直接转换数值数组与字符数组
数值矩阵到字符数组: num2str、int2str、mat2str
字符数组到数值数组:str2num
在这里插入图片描述在这里插入图片描述在这里插入图片描述数值数组转换为字符数组后,表面上看象一个数值数组,但此时的元素是字符而不是数字
在这里插入图片描述double、char 是按 ASCII码 进行转换
num2str、int2str、mat2str、str2num
是直接进行转换

字符串的合并
水平合并

1.直接使用中括号

str1=['hello ', 'world!']

2.使用 strcat 函数

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

使用 strcat 时,自动去除原字符串结尾处的空格
水平合并得到的是一个更长的字符串

垂直合并

1.直接使用中括号

str3=['Matrix    '; 'Laboratory']

2.使用 strvcat 函数

str4=strvcat('Matrix','Laboratory')

在中括号中用分号实现垂直合并,必须保证每个字符串的长度相等,否则需用空格补齐
用 strvcat 合并,自动为较短的字符串补充空格
垂直合并得到的是一个字符数组

运行字符串

运行字符串所表示的表达式或命令: eval
在这里插入图片描述在这里插入图片描述在这里插入图片描述

字符串相关函数
strcmp比较字符串
strcmpi忽略大小写比较字符串
upper转换为大写
blanks产生空字符串
strmatch查找匹配的字符串
strjust对其字符数组,包括左对其,右对齐和居中
strrep替换字符串
strncmp比较字符串的前n个字符
lower转换为小写
deblank删除字符串中的空格
findstr在一个字符串中查找另一个字符串
strtok返回字符串中第一个分割符(空格,回车和Tab键)前的部分

细胞数组

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

细胞数组的定义

用赋值语句直接定义

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

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

cell(m,n)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值