MATLAB数据类型

数据类型

MATLAB一共有15种数据类型,每一种数据类型都是以矩阵的形式或者数组形式,其最小值为0到0,最大值为无穷。

4.1变量与常量

4.1.1变量

变量是所有语言的基本元素之一,和其他语言不同的是,每个变量都是数组或矩阵,而且MATLAB并不要对变量进行声明,也不要指定变量类型,是一种弱类型的语言,使用时自动依据的值或者对变量进行的操作来识别变量的类型。

·变量名区分大小写

·变量名必须以字母开头,只有可以是字母、数字、下划线的一种或几种。

·变量名不能超过31个字符,第31个后面的字符可以省略。

4.1.2常量

常量是MATLAB语言本身提供的一种预定义的变量,如表中是MATLAB语言中常使用的一些常量

常量的名称

说明

ans

默认变量

pi

圆周率

NaN

不定值

inf

无穷大

realmin

最小正浮点数

realmax

最大正浮点数

i/j

虚数单位

实例——默认变量展示

在命令行输入“1:10”,然后执行程序

>> 1:10

ans =

     1     2     3     4     5     6     7     8     9    10

这里ans是指当前运行的结果,若当前的计算结果用户没有对其定义变量,系统就会自动将当前结果赋给ans变量。

 

4.2整型

在MATLAB数据类型中,按照有无符号可以分为有符号整数和无符号整数,按照字节数又可以分为8位、16位、30位和64位的整型数据。

 

不同的类型整型函数如下:

int8(x)

有符号8位整型数据

int16(x)

有符号16位整型数据

int32(x)

有符号32位整型数据

int64(x)

有符号的64位整型数据

uint8(x)

无符号的8位整型数据

uint16(x)

无符号的16位整型数据

uint32(x)

无符号的32位整型数据

uint64(x)

无符号的64位整型数据

实例——整型数据类型展示

>> a=int8(10)

a =

  int8

   10

>> b=int16(10)

b =

  int16

   10

>> c=int8(129)%有符号的八位整型数据最大是2^8-1=127,129超出

%了范围,所以显示127。

c =

  int8

   127     

5.3浮点型

在MATLAB中的浮点类型数据中分为单精度浮点型和双精度浮点型,分为32位和64位,使用single()和double()函数定义和转换。默认状态下输入的数据为双精度浮点型。

浮点型只采用十进制,有两种形式,十进制数形式和指数形式。

·十进制形式,由数字0~9和小数点组成,比如:3.2, 3, 9, 0.33。

·指数形式,由十进制数和“e”或“E”组成,列如2.1E4就等于2.1*10^5。

列:不同浮点型的展示

>>   y=single(33)

y =

  single

    33

>> x=double(2020)

x =

        2020

>> z=20%默认双精度类型

z =

    20

>> whos

  Name      Size            Bytes  Class     Attributes         

  x         1x1                 8  double             

  y         1x1                 4  single              

  z         1x1                 8  double 

5.4逻辑类型

MATLAB的逻辑类型有两个值,“0”和“1”,分别代表“假”和“真”。逻辑类型数据通常用于查找和条件语句的判断。

逻辑类型数据的应用:

列:if语句的条件判断

>> c=5;

>> if c>5

   disp('为真')

else

   disp('为假')

end

为假

  逻辑运算

>> x=[0 1 0 1 0 1];

>> ~x  %逻辑非运算

ans =

 

  1×6 logical 数组

   1   0   1   0   1   0

 

4.5字符串

MATLAB中的字符串通常用于处理文本等字符类型。字符串可以理解为由字符组成的数组。在MATLAB中的字符存储与相应的ASCII码对应。

4.5.1一维字符串

在一对单引号的中间放置字符就可以组成字符串数据类型。字符串数据类型的每个字符占两字节内存。

列:一维字符串的生成

   直接赋值:

>> str='abcde';%定义字符串str,赋值abcde;

>> class(str) %str为字符串类型的数据;

 

ans =

 

    'char'

 

>> whos       %每个字符占2字节的存储空间

  Name      Size            Bytes  Class    Attributes

 

  ans       1x4                 8  char              

  str       1x5                10  char   

 连接法:通过连接函数strcat()或者连接符“[]”可将两段字符连接;

>> str='a good';

>> str1=' student';

>> str=strcat(str,str1)

 

str =

 

    'a good student'

4.5.2二维字符串

二维字符串生成的方法类似与一维字符串,不过要使用“[]”连接。二维字符串规定每一行的字符的列数相同。如果不同会报错。

二维字符串的生成过程

例子:

>> str=['feel';'ab'] %列数不一样,报错。

要串联的数组的维度不一致。

>> str1=['feel';'good']

 

str1 =

 

  2×4 char 数组

 

    'feel'

    'good'

字符串操作函数

字符串变量基本上在所有的编译环境中都有使用,MATLAB也为用户提供的许多处理字符串的函数,比如字符串的判断,查找,替换,比较和大小写的转行等;

1:字符串的判断

ischar(a):判断变量是否为字符串变量,,如果是返回“1”,反之返回“0”。

isletter(a):判断变量中每个字符的元素知否为字符,如果是返回“1”,反之返回“0”。

Isspce(a):判断变量中每个字符元素是否为空格,如果是返回“1”,反之返回“0”。

案例:

>> str2=['a S456','liu  5  ']

 

str2 =

 

    'a S456liu  5  '

 

>> ischar(str2)

 

ans =

 

  logical

 

   1

 

>> isletter(str2)

 

ans =

 

  1×14 logical 数组

 

   1   0   1   0   0   0   1   1   1   0   0   0   0   0

 

>> isspace(str2)

 

ans =

 

  1×14 logical 数组

 

   0   1   0   0   0   0   0   0   0   1   1   0   1   1

2、字符串的访问:

如果想访问字符串中某个元素,通常根据字符元素的下标来访问:

案例:

>> str3=char('abc','def','love')

 

str3 =

 

  3×4 char 数组

 

    'abc '

    'def '

    'love'

 

>> str3(1,:)

 

ans =

 

    'abc '

 

>> str3(2,1)%访问字符串中第二行第一列的元素

 

ans =

 

    'd'

其他字符串函数

Strfind(str,a)

从字符串str中找出字符a

Findstr(a1,a2)

在字符串中查找出短的

Strrep(s1,s2,s3)

在s1中找出s2并替换成s3

Strmatch(s1,s2)

在s1中找出与s2一样的字符,返回行号

Strcmp(s1,s2)

比较s1,s2是否相同

Strncmp(s1,s2,n)

比较两个字符串前n个是否相同

Strcmpi(s1,s2)

不区分大小写的比较两个字符串是否相同

Lower(s)

将大写转换成小写

Upper(s)

将小写字符转换成大写

 

4.6结构体

结构体类型数据可以将不同类型的变量存放放在同一个变量名下,可对结构体中不同的数据进行赋值和操作。

结构体的生成方法有两种,命令行直接生成法和函数法。

命令行直接赋值给不同的域时,结构与域之间要用点号连接。

函数法:MATLAB中提供了struct()函数创建结构体

>> ss.str='love';

>> ss.num=[1:2:10];

>> ss

ss =

  包含以下字段的 struct:

    str: 'love'

    num: [1 3 5 7 9]

>> c=struct('str','love','num',[1:2:10])

c =

  包含以下字段的 struct:

    str: 'love'

    num: [1 3 5 7 9]

 

4.7不同类型的转换

MATLAB中为用户提供了多种数据类型,用户可以根据自己的需求来创建不同类型的变量,但是我们用户在实际使用过程常常要用到不同数据类型之间的转换,所以MATLAB也提供了许多的函数来进行不同类型之间的转换。

4.7.1数字类型之间的转换

数据类型的转换的基本格式:如a1=class(a2),a1为转换后的数据,a2为转换前的数据,class为转换的格式。比如可以转换的数值类型有双精度数据类型、单精度数据类型、16位、32位、64位有无符号整型数据类型。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值