MATLAB数组

 

MATLAB中学到的数据类型的变量都是数组类型,向量也称一维数组,矩阵称二维数组。

7.1一维数组(向量)

  一维数组是最简单的数组,是最容易创建和使用的数组,MATLAB中创建一维数组的方法有五种:分别是直接输入法、冒号发、转置发、函数linspace创建法、函数logspace法。

实例:一维数组创建的五种方法

%直接输入法

%创建一行一维数组

  >> x=[2 4 6 8 10]

 

x =

 

     2     4     6     8    10

 

>> %冒号法

>> x=2:2:10

 

x =

 

     2     4     6     8    10

 

>> %转置法

>> x=[2:1:2*pi]'

 

x =

 

     2

     3

     4

     5

     6

 

>> %函数linspace

>> %linspace(first_value,last_value,num)

>> %该方法中第一个是开始数值,第二个是结束的数值,最后一个是元素的个数

>> x=linspace(0,10,11)

 

x =

 

     0     1     2     3     4     5     6     7     8     9    10

 

>> %利用函数logspace

>> %logspace(first_value,last_value,num)

>> %该方法第一个数值为10^firsst_value,结束为10^last_value,最后一个是元素的个数

>> x=logspace(1,3,4)

 

x =

 

   1.0e+03 *

 

    0.0100    0.0464    0.2154    1.0000

 

7.2 二维数组(矩阵)

二维数组也称矩阵, MATLAB就是matrix laboratory(矩阵实验室)的缩写,可见矩阵在MATLAB中的分量有多大。

7.2.1二维数组的定义

二维数组(矩阵)是MATLAB操作的基本单位,矩阵的运算非常的便捷、高效。二维数组是由m*n个数aij排列而成,记成:

 

A=     a11 a12 ……a1n

                      a21 a22 ……a2n

             ……………………...

            am1 am2 ……amn

 

注意:由有限个向量组成构成二维数组(矩阵),如果A=(aij)是矩阵m*n矩阵,那么有m个n维行向量,有n个m为列向量。

矩阵的生成主要有直接输入法,M文件生成法和文本文件生成。

实例:二维数组的创建

·直接输入创建二维数组

 创建元素为1,3*3矩阵

  >> m=[1 1 1;1 1 1;1 1 1]

 

m =

 

     1     1     1

     1     1     1

     1     1     1

 ·利用m文件创建二维数组

 当矩阵的数据规模比较大时,直接输入会觉得非常的麻烦而容易出错,出错了也不容易更改,为了解决这一状况,MATLAB提供了可也将二维数组按一定的格式写入文本文件,并将其拓展名命名为m,即M文件。

实例:使用M文件生成二维数组

%创建一个为matrix.m的文件,输入如下代码

matrix1=[123 456 789 12 23;234 46 47 89 528;4564 7897 4568 7895 48955;202 203 505 564 4562]

%在命令行中运行M文件

>> matrixdemo

 

matrix1 =

 

         123         456         789          12          23

         234          46          47          89         528

        4564        7897        4568        7895       48955

         202         203         505         564        4562

  ·文本创建

利用文本创建二维数组只要在文件夹中创建txt格式文件,然后在命令行中调用即可,

 实例:利用文本进行二维数组的创建

 现在文本文件中建立文件,输入如下数组,文件名命名为wenbendemo.txt

 3 5 8

10 20 30

在命令行中调取;

>> load wenbendemo.txt

>> wenbendemo

 

wenbendemo =

 

     3     5     8

10    20    30

 

7.3多维数组

当数组的维度超过了二维时,就称为多维数组,MATLAB中的多维数组是二维数组的扩展,每个多维数组都要先创建一个二维数组,然后在二维数组的基础上增加维度。

实例:创建三维数组的方法:

  先创建一个二维数组

>> a = [9 8 5;2 1 1;1 1 1]

 

a =

 

     9     8     5

     2     1     1

     1     1     1

 

>> a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]

 

a(:,:,1) =

 

     9     8     5

     2     1     1

     1     1     1

 

 

a(:,:,2) =

 

     1     2     3

     4     5     6

     7     8     9

利用cat()函数也可以构建多维数组

cat()的语法规则:

a=cat(dim,A1,A2…)

a是创建的数组名称

A1,A2是要创建连接的数组

dim是连接数组的大小

实例:cat()创建多维数组

a = [9 8 7; 6 5 4; 3 2 1];

b = [1 2 3; 4 5 6; 7 8 9];

c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])

>> catdemo

c(:,:,1) =

     9     8     7

     6     5     4

     3     2     1

c(:,:,2) =

     1     2     3

     4     5     6

     7     8     9

c(:,:,3) =

     2     3     1

     4     7     8

     3     9     0

 

 

 

7.4特殊数组

在MATLAB中有一些特殊的数组函数,这些函数能创建出现一些特殊的数组

·全零数组:zero()

实例:>> zeros(6)

 

ans =

 

     0     0     0     0     0     0

     0     0     0     0     0     0

     0     0     0     0     0     0

     0     0     0     0     0     0

     0     0     0     0     0     0

     0     0     0     0     0     0

·全一数组:ones()

实例:>> ones(6)

 

ans =

 

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

·单位矩阵:eye()

实例:>> eye(6)

 

ans =

 

     1     0     0     0     0     0

     0     1     0     0     0     0

     0     0     1     0     0     0

     0     0     0     1     0     0

     0     0     0     0     1     0

     0     0     0     0     0     1

·随机数数组:rand()

实例:>> rand(6)

 

ans =

 

    0.8147    0.2785    0.9572    0.7922    0.6787    0.7060

    0.9058    0.5469    0.4854    0.9595    0.7577    0.0318

    0.1270    0.9575    0.8003    0.6557    0.7431    0.2769

    0.9134    0.9649    0.1419    0.0357    0.3922    0.0462

    0.6324    0.1576    0.4218    0.8491    0.6555    0.0971

    0.0975    0.9706    0.9157    0.9340    0.1712    0.8235

   7.4魔方

   魔方是一个平方矩阵,他的每一列,每一行,对角线相加都相等。利用magic()函数创建,但需要注意的是括号内的参数要大于或等于3。

实例:>> magic(6)

 

ans =

 

    35     1     6    26    19    24

     3    32     7    21    23    25

    31     9     2    22    27    20

     8    28    33    17    10    15

    30     5    34    12    14    16

     4    36    29    13    18    11

7.5排序数组

在实际使用时,用户经常需要对数组进行排序,MATLAB提供了一个排序的函数(sort())可以对数组进行排序,不需要用户辛苦的去对函数进行排序,MATLAB将这种数组称为排序数组

实例:先创建脚本文件sortdemo.m,代码如下

  v = [ 03 25 32 9 7 0 13 17] 

sort(v)                    

m = [9 8 5; 5 3 9; 2 1 1]   

sort(m, 1)               

sort(m, 2)               

 

命令行代码

>> sortdemo

 

v =

 

     3    25    32     9     7     0    13    17

 

 

ans =

 

     0     3     7     9    13    17    25    32

 

 

m =

 

     9     8     5

     5     3     9

     2     1     1

 

 

ans =

 

     2     1     1

     5     3     5

     9     8     9

 

 

ans =

 

     5     8     9

     3     5     9

     1     1     2

7.6数组函数

 MATLAB为用户提供了一些操作数组的函数,帮助用户能够更好的对MATLAB进行操作。

下面给出了一些常用的数组函数:

函数

功能

Length

数组长度

Numel

数组元素个数

Size

数组维度

Queeze

删除单列维度

Iscolumn

是否为列向量

Isrow

是否为行向量

Isempty

是否为空

Isscalar

是否为标量

Isvector

是否为向量

实例:求出一个数组的维度

>> b=size(a)

 

b =

 

2     3

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值