MATLAB数据类型(1)

目录

数值数据

字符串数据

MATLAB数据类型(2)链接(结构数组 元胞数组 逻辑数组简单使用)


写在前面的话

在MATLAB中,当用户传入参数的时侯,MATLAB会自动确定数据类型。如果玩MATLAB只是把它当作一个计算器,那么大可不必深入了解MATLAB的数据类型。但是要想学习MATLAB的奇技淫巧,还是需要掌握MATLAB的数据类型这个基本功。

在正式开始之前,我们应当记住一个函数:class()    作用:确定变量的数据类型。


数值数据

 整型

整型类型 取值范围 类型标识符(转换函数)
无符号8位整型       0\sim 2^{^{8}}-1 uint8
带符号8位整型  -2^{^{7}}\sim 2^{^{7}}-1 int8
无符号16位整型        0\sim 2^{^{16}}-1 uint16
带符号16位整型 -2^{^{15}}\sim 2^{^{15}}-1 int16
无符号32位整型        0\sim 2^{^{32}}-1 uint32
带符号32位整型 -2^{^{31}}\sim 2^{^{31}}-1 int32
无符号64位整型        0\sim 2^{^{64}}-1 uint64
带符号64位整型 -2^{^{63}}\sim 2^{^{63}}-1 int64

说明:以无符号8位整型为例,8表示数据存储在内存中占8个bit即用8个二进制数来表示。由于没有符号,数据从0开始,因此最大能表示255,超过255时,数据会被自动赋值为255。这种数据类型在图像处理时非常常见。

在MATLAB中,类型标识符可以直接当函数来使用

浮点型

浮点类型 占用内存大小 类型标识符(转换函数)
单精度浮点型 4 bytes single
双精度浮点型 8 bytes double

1byte=8bits=8个二进制数

在MATLAB中,输入的数值数据默认类型为双精度型(double型)。

复数

MATLAB支持复数,但它默认被视为double类型的数。i,j 是系统默认的虚数单位,

a=1+5ia=1+5*i表示同一个复数(i可以用j替换)。

相关函数 说明 用法
real() 求复数实部 real(val)
imag() 求复数虚部 imag(val)
abs() 求复数模值 abs(val)
angle() 求复数相角 angle(val)
complex() 生成一个复数 complex(val1,val2)

字符串数据

在MATLAB中,字符用两个单引号将字符内容括起来定义。字符串被当作一个向量,它可以像数组一样被索引(引用)

如:

>>x='beixifen';
>> class(x)
ans =
    'char'
>> x(1:3)
ans =
    'bei'

字符串的执行

eval(val) 函数把传入的字符串当作MATLAB语句来执行。例如:

>>a='1+1';
>>eval(a)
ans=
2

字符串的ASCII码

字符串在MATLAB中以ASCII码形式存储,使用abs(val)可以求得字符串(数组)对应的ASCII码数组。例如:

>> a='beixifen'
a =
    'beixifen'
>> abs(a)
ans =
    98   101   105   120   105   102   101   110

字符串连接

 在MATLAB 中,可以用中括号将需要连接的字符串按需要的顺序排列,字符串之间可以用逗号,也可以用空格分隔开。例如:

>> a='beixifen';
>> b=[a,'123'] %逗号分隔
b =
    'beixifen123'
>> c=[b '456'] %空格分隔
c =
    'beixifen123456'

另外,MATLAB提供了专门用于字符连接的函数:strcat。例如:

%接上面的例子
>> d=strcat(c,a)
d =
    'beixifen123456beixifen'

字符串的比较

字符串的比较可以利用关系运算,按对应位置字符ASCII码值大小比较,比较时字符串长度需要一致。例如:

>> 'abc'>='abd'
ans =
  1×3 logical 数组
   1   1   0

此外,MATLAB提供了字符串比较函数,见总结。

字符串的查找

findstr(str1,str2),返回在字符串str1中str2出现的开始位置。例如:

>> findstr('cat cup cut cat','cat')
ans =
     1    13

字符串的替换

strrep(str1,str2,str3),将str1中str2替换为str3.例如:

>> strrep('beiduofen','duo','xi')
ans =
    'beixifen'

字符串常见函数总结

函数 用法 作用
eval eval(str) 把传入的字符串当作MATLAB语句来执行
abs abs(str) 求得字符串(数组)对应的ASCII码数组
strcat strcat(str1,str2,~,strn) 将若干字符串连接起来
strcmp strcmp(str1,str2) 比较str1和str2,相等返回1,不等返回0
strncmp strcmp(str1,str2,n) 比较str1和str2前n个字符,相等返回1,不等返回0
strcmpi strcmp(str1,str2) 忽略大小写,比较str1和str2,相等返回1,不等返回0
strncmpi strncmpi(str1,str2,n) 忽略大小写,比较str1和str2前n个字符,相等返回1,不等返回0
findstr findstr(str1,str2) 返回在字符串str1中str2出现的开始位置
strrep strrep(str1,str2,str3) 将str1中str2替换为str3

 


MATLAB数据类型(2)链接:

https://blog.csdn.net/Bei_xifen/article/details/82765311

你可能感兴趣的:(MATLAB,MATLAB,Data,Types)