数组的定义:相同数据类型的元素按照一定顺序排列的集合。

分类:

空数组;

只有一个元素的标量

只有一行/一列元素的向量

多行多列的二维数组

超过二维的多维数组(行,列,页)

按照存储方式分类:

普通数组

稀疏数组(大部分元素都是0的数组)(目的是提高数据存储和运算的效率)

数组的创建

1.空数组

A=[ ]

2.一维数组

A=[1,2,3]

B=[1;2;3]

2.1等差数组

var=start_var:step:stop_var

不指定step时,step默认为1

var=linspace(start_var,stop_var,n)。不指定时,n默认为100

logspace(start_var,stop_var,n):产生从10的start_var次方到10的stop_var次方的n个等比一维数组。不指定n时,n默认为50

2.二维数组的创建

创建三维数组

1.用下标引用的方法

没有指定的数值默认为0

2.用低维数组创建三维数组

>> D1=[1,2,3;4,5,6;7,8,9]D1 = 1 2 3 4 5 6 7 8 9>> D2(:,:,1)=D1;>> D2(:,:,2)=2*D1;>> D2(:,:,3)=3*D1;>> D2D2(:,:,1) = 1 2 3 4 5 6 7 8 9D2(:,:,2) = 2 4 6 8 10 12 14 16 18D2(:,:,3) = 3 6 9 12 15 18

21 24 27

3.使用创建函数创建数组

C=cat(dim,A1,A2,A3……),dim是创建数组的维度,A1,A2,A3...表示各个维度上的数组。

>> D2=[1,2,3;4,5,6;7,8,9];>> C=cat(3,D2,2*D2,3*D2);>> CC(:,:,1) = 1 2 3 4 5 6 7 8 9C(:,:,2) = 2 4 6 8 10 12 14 16 18C(:,:,3) = 3 6 9 12 15 18 21 24 27

B=repmat(A,[m,n,p]),复制并堆砌数组。A是被复制的数组模块,m、n,p为该数组模块在列、行、页上的复制次数。

B=reshape(A,[m n p]),B是一个m行n列p页的高维数组,其成员来自于A

5.创建低维标准数组:使用标准数组命令

'

magic(n)产生一个n*n维数列,数值从1~2的n次方。而且每行、每列之和都相等。

randn(n)返回一个n*n矩阵,这些数字正态随机分布

randn(m,n)产生一个m行n列的数组,数组中的数字正态随机分布

gallery是测试矩阵生成函数

多维数组及其操作

1.多维数组的属性:

size(A)按照行、列、页的顺序,返回A每一维上的大小

ndims(A)返回A的维度值

whos返回当前工作区中各个变量的详细信息。clear可以清空工作区的缓存

2.多维数组的索引:多下标索引和单下标索引

多下标索引:用数组/冒号代表其中一维,则可以访问多个元素

多下标索引单个值:

2.单下标索引

2.多维数组的维度操作:形状的重新排列和维度的重新排序

reshape改变形状,B=reshape(A,m,n)是把A重新排列成m行n列的新数组赋值给B,当m/n其一的值确定的时候,另一个值可以取【】,计算机将自动计算。

permute函数把原来某个维度上的所有元素移动到新的维度上

ipermute是permute的逆序数,当B=permute(A,dims)时,ipermute(B,dims)会返回多维数组A

多维数组参与数学计算

sum,mean等函数可以对多维数组中第一个不为1的维度上的向量进行计算

sum对同一列上的数字进行了相加

mean类似sum,不过求的是平均值。

sin,cos等函数对多维数组中的每一个元素都单独计算

E=eig(A):求A得所有特征值,构成向量E.这里的A必须是二维数组。

变量的命名:

必须以字母开头

只能用字母、数字、下划线组成,不能含有空格和标点符号

大小写敏感

matlab中的特殊常量:i/j虚数

Inf/inf正无穷大

NaN不存在

pi

eps容差变量,非常小

realmin/Realmin

realmax/Realmax