初学matlab之数据类型

 本文章主要从MATLAB的基本数值类型,逻辑类型,函数句柄,结构类型和细胞数组类型来算

数值类型

数值类型包括浮点型,整数型和一些特殊数值

整数型

有符号整型可以表示正数和复数,数的最高位为符号位。

无符号整型只可以表示0和正数。

例: 强制类型转换

 PS:对A进行了强制类型转换,其中转换为8位整有符号数时,产生了溢出

浮点型

具体所占空间和范围如下图所是

注意:最高位为符号位

例: 浮点型与整形转换

变量与常量

常量说明常量说明
ans最近运算结果eps浮点数相对精度
NaN非数pi圆周率
i,j虚数单位Inf

无穷大

默认常量表

PS:用-Inf和Inf表示负无穷大和正无穷大

        非数是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。

字符与字符串

字符串常用函数

例1:  字符串基本操作

单引号用来创建字符串;[m,n]计算字符串大小;upper()变成全大写;lower()变成全小写

例2: 字符串连接

     

 strcat()横向连接字符串;strvcat()纵向连接字符串

例3: 比较字符串

 strcmp () 用来比较字符串(区分大小写)

strncmp () 用来比较两个字符串的前n个字符,区分大小写

strncmpi () 用来比较两个字符串的前n个字符,不区分大小写

例4: 进制间的转换

      

 bin2dec()二进制转十进制;dec2bin()十进制转二进制;

hex2dec()十六进制转十进制;dec2hex()十进制转十六进制;

base2dec()任意进制转化为10进制

例5: 字符串的查找和替换

s=‘i have a apple do you want to eat it’

findstr()在长字符串中查找短字符串,返回短字符串在长字符串中首字符的位置;如果没有查找到则返回空矩阵

strfind()在前一个字符串中查找后一个字符串, 返回后一个字符串在前一个字符串中首字符的位置,如果没有查找到则返回空矩阵。

 strrep()将s字符串中的apple用banana替换

逻辑类型

MATLAB用“1”和“0”分别代表“逻辑真”和“逻辑假”,逻辑类型数值只能通过数值类型转换或者使用特殊的函数生成逻辑数组或矩阵

例:任意类型矩阵转换为逻辑矩阵

  ​​​​​

logical()将矩阵A转换为逻辑矩阵B

true()生成各个元素都为逻辑真的逻辑矩阵;false()生成各个元素都为逻辑非的逻辑矩阵

函数句柄

函数句柄也是MATLAB中的一种常见的数据类型,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++)

函数句柄操作函数

创建函数句柄需要使用到操作符 @ ,使用函数句柄可以实现对函数的间接调用

结构类型

MATLAB中的结构类型与 C 语言类似,一个结构可以通过字段存储多个不同类型的数据

函数说明
deal把输入处理成输出
fieldnames获取结构的字段名
getfield获取结构中指定字段的值
rmfield 删除结构的字段(不是字段内容)
setfield设置结构数组中指定的字段的值
struct创建结构数组
struct2cell结构数组转化成元胞数组
isfield判断是否存在该字段
isstruct

判断某变量是否是结构类型

结构数组的操作函数

 

细胞数组类型

细胞数组常见于MATLAB神经网络原理中,是不同于普通矩阵的一种特殊矩阵;普通矩阵的数据类型,维度须一致,细胞数组的元素可以是任意的数据类型、任意的维度

 细胞数组类型的建立

用赋值语句直接定义

>> student{1,1}={'Zhangsan','Lisi'};
>> student{1,2}={'001','002'};
>> student{2,1}={'f','m'};
>> student{2,2}={20,19};

输入

student

输出

student = 

    {1x2 cell}    {1x2 cell}
    {1x2 cell}    {1x2 cell}

cellplot(student)

 

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

输入

stu=cell(2)

输出

stu = 

    []    []
    []    []

输入

>> stu{1,1}={'Zhangsan','Lisi'};
>> stu{1,2}={'001','002'};
>> stu{2,1}={'f','m'};
>> stu{2,2}={20,19};
>> stu

输出

stu = 

    {1x2 cell}    {1x2 cell}
    {1x2 cell}    {1x2 cell}

①函数cellplot()画出细胞数组结构图

②利用函数cell()建立细胞数组,建立一个空数组,用户还需要给细胞数组赋值,再用函数cellplot()画出细胞数组结构图

通过细胞数组结构图可以看出两种方法建立细胞数组得到的结构相同

细胞数组类型的操作

细胞数组相关函数

例:  用以上函数对细胞数组操作

建立一个细胞数组

输入
>> stu_cell={'Muzi','001','m','20'};
>> celldisp(stu_cell)

输出
stu_cell{1} = Muzi

stu_cell{2} = 001
 
stu_cell{3} = m
 
stu_cell{4} = 20

cell2struct()

输入
>> fields={'name','number','sex','age'};
>> stu_struct=cell2struct(stu_cell,fields,2);
>> stu_struct

输出
stu_struct = 
      name: 'Muzi'
    number: '001'
       sex: 'm'
       age: '20'

iscell()

输入
a=iscell(stu_cell)

输出
a=
   1

 cell2mat()

输入
>> b= {[1] [2 3 4]; [5; 9] [6 7 8; 10 11 12]};
>> m= cell2mat(b)

输出
m =

     1     2     3     4
     5     6     7     8
     9    10    11    12

mat2cell()

输入
>> c=[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15; 16 17 18 19 20];
>> C1= mat2cell(c, [2 2], [3 2])

输出
C1 = 

    [2x3 double]    [2x2 double]
    [2x3 double]    [2x2 double]

num2cell()

输入
>> C2=num2cell(c)

输出
C2 = 

    [ 1]    [ 2]    [ 3]    [ 4]    [ 5]
    [ 6]    [ 7]    [ 8]    [ 9]    [10]
    [11]    [12]    [13]    [14]    [15]
    [16]    [17]    [18]    [19]    [20]

补充

浮点数的取整函数

函数说明
round(x)结果等于离浮点数x最近的整数,小数部分四舍五入
fix(x)结果等于舍去浮点数x,小数部分取整
floor(x)结果等于小于浮点数x,且离x最近的整数
ceil(x)结果等于大于浮点数x,且离x最近的整数

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值