MATLAB学习笔记:数据类型

本文记录了在MATLAB学习过程中所需要认识和了解的基本数据类型。

1、数值类型

(1)整数类型:分为有符号int和无符号uint两种,位数有8、16、32、64。对于非整数类型的数值,可以通过转换函数进行相互转换,例如向下取整floor(x),向上取整ceil(x),最接近整数取整round(x),向0取整fix(x)。

(2)浮点数类型:分为单精度和双精度。单精度为32位宽;双精度为64位宽。双精度浮点数运算结果由其它参与运算的数据类型决定:逻辑型、字符型—双精度;整数型—整数类型;单精度浮点型—单精度浮点型。

(3)复数:实部real(z)、虚部image(z)、模abs(z)、复数幅角angle(z)、共轭复数conj(z)、以a为实部、b为虚部创建复数。

(4)无穷量和非数值量。

2、逻辑类型

(1)逻辑类型同C语言。

(2)逻辑类型运算不同于数值类型的运算。

3、字符和字符串

>>String = 'Every good boy does have fun.';
>>size(String)

代码结果:ans = 1 29。其中1是1行,29代表29列;在字符串中,空格也是占用一个字符位置。字符串是数值数组,可以用数组操作工具进行操作。

>>String = 'It''s not the manual'

代码结果:String = ‘It’s not the manual’。字符串中单引号可以用两个连续的单引号表示。

>> A='Hello,';
>> B='world.';
>> C=[A B]

代码结果:C= ‘Hello,world.’。字符串的连接可以用两个字符串数组连接。

4、函数句柄

在MATLAB中直接调用函数:直接采用和M文件同名的子函数或者在主文件中定义好的函数,需要严格按照函数名。

在MATLAB中间接调用函数:采用操作符@,将函数保存到一个变量中,无需严格按照函数名,按照变量名使用函数即可。

>> F_Handle=@cos;
>> x=0:2*pi;
>> F_Handle(x)

可以看到,这里采用了F_Handle函数调用了cos函数。

5、结构体类型

(1)通过字段赋值创建结构体。

(2)通过struct函数创建结构体。

语法:s=struct(‘field1’,‘data1’,‘field2’,‘data2’…)。其中s是结构体的名称,s(1)表示结构体每个字段对应的第一个值,s(2)表示结构体每个字段对应的第二个值…以此类推。

>> Schedule=struct('Day',{'Monday','Tuesday','Wednesday'},'Time','15:00','Number',18);
>> Schedule(1)

ans = 

  包含以下字段的 struct:

       Day: 'Monday'
      Time: '15:00'
    Number: 18

>> Schedule(2)

ans = 

  包含以下字段的 struct:

       Day: 'Tuesday'
      Time: '15:00'
    Number: 18

>> Schedule(3)

ans = 

  包含以下字段的 struct:

       Day: 'Wednesday'
      Time: '15:00'
    Number: 18

查看结构体的组成:

>> Schedule
Schedule = 

  包含以下字段的 1×3 struct 数组:

    Day
    Time
    Number

6、数组类型

MATLAB运算所有的数据类型都是按照数组及矩阵的形式进行存储和运算的,在形式上和矩阵的表达形式较为相同,但是与矩阵运算所使用的线性代数的运算不同。

(1)赋值创建数组

>> A=[1 2 3 4 5 6]

A =

     1     2     3     4     5     6

(2)使用“:”创建数组

句法格式:Array = i : j : k,其中i是创建数组的起始值;j是步长,表示相邻元素之间的间隔,当j=0时,数组按照步长j=1进行创建数组;k是创建数组的终值。

>> A=1:6

A =

     1     2     3     4     5     6

>> A=1:2:6

A =

     1     3     5

MATLAb中的linspace可以用于产生x1,x2之间的N点行线性的矢量,表达式为linspace(x1,x2,N),其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。

N=50:

>> A=linspace(1,100,50)

A =

  列 1 至 13

    1.0000    3.0204    5.0408    7.0612    9.0816   11.1020   13.1224   15.1429   17.1633   19.1837   21.2041   23.2245   25.2449

  列 14 至 26

   27.2653   29.2857   31.3061   33.3265   35.3469   37.3673   39.3878   41.4082   43.4286   45.4490   47.4694   49.4898   51.5102

  列 27 至 39

   53.5306   55.5510   57.5714   59.5918   61.6122   63.6327   65.6531   67.6735   69.6939   71.7143   73.7347   75.7551   77.7755

  列 40 至 50

   79.7959   81.8163   83.8367   85.8571   87.8776   89.8980   91.9184   93.9388   95.9592   97.9796  100.0000

默认N:

>> A=linspace(1,100)

A =

  列 1 至 22

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

  列 23 至 44

    23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44

  列 45 至 66

    45    46    47    48    49    50    51    52    53    54    55    56    57    58    59    60    61    62    63    64    65    66

  列 67 至 88

    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84    85    86    87    88

  列 89 至 100

    89    90    91    92    93    94    95    96    97    98    99   100

(3)创建空数组

>> A=[]

A =

     []

空数组主要应用于逻辑运算、数组声明、数组的清空等。

7、单元数组类型

单元数组包括许多类型的数据,组成单元数组的每一个元素称为一个单元,每个单元可由不同类型的数据构成。

(1)赋值创建单元数组

>> A={'x', [1,2,3];10, pi}

A =

  2×2 cell 数组

    {'x' }    {1×3 double}
    {[10]}    {[  3.1416]}

(2)利用cell函数创建单元数组

>> A=cell(3,3)

A =

  3×3 cell 数组

    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}

(3)对单元数组进行寻访

(4)对单元数组进行操作

单元数组的操作包括合并、删除单元数组指定单元、改变单元数组的形状等。

8、map容器类型

map的本意是映射,就是将一个量映射到另一个量。例如将字符串映射为一个数值,这个字符串是map的键(key),被映射的数值就是map的数据(value)。

你可能感兴趣的:(MATLAB学习,matlab)