数组的定义:相同数据类型的元素按照一定顺序排列的集合。
分类:
空数组;
只有一个元素的标量
只有一行/一列元素的向量
多行多列的二维数组
超过二维的多维数组(行,列,页)
按照存储方式分类:
普通数组
稀疏数组(大部分元素都是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;
>> D2
D2(:,:,1) =
1 2 3
4 5 6
7 8 9
D2(:,:,2) =
2 4 6
8 10 12
14 16 18
D2(:,:,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);
>> C
C(:,:,1) =
1 2 3
4 5 6
7 8 9
C(:,:,2) =
2 4 6
8 10 12
14 16 18
C(:,:,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