MATLAB中的数组

一、什么是数组

数组是组织成行和列的数据值的组合。
数组可以分为向量矩阵
向量通常用来描述只有一维的数组;而矩阵用来描述二维或者多维的数组。
数组在内存中存储是按列存储的。

二、创建和初始化一维或二维数组

1、在赋值语句中初始化

% array1为一维数组
array1=[1 2 3 4]
% array2为一个2*3的数组 ;分开不同的行 列之间空格隔开
array2=[1 2 3;4 5 6]

运行结果:
MATLAB中的数组_第1张图片

2、使用快捷表达式初始化

冒号运算符 first:incr:last
其中first是第一个值,incr是步进增量(默认值为1,若增量为1,可以忽略不写),last代表最后一个值要小于last
冒号运算符经常与转置运算符(’)结合使用,用来初始化列向量和更复杂的矩阵。

x=1:2:10
f=[1:4]
g=[1:2:9]'
h=[f' f']
e=[1:5;2:3:15;-2:0.5:0]

运行结果:
MATLAB中的数组_第2张图片

3、使用内置函数初始化

函数zeros用于创建任何大小的全零数组;
函数ones用于生成全1数组;
函数eye用于生成单位矩阵(所有对角线元素为1,非对角线元素为0);
函数size返回数组中的行数和列数。

a=zeros(2)
b=zeros(2,3)
c=[1 2;3 4];
d=zeros(size(c))

运行结果:
MATLAB中的数组_第3张图片

用于初始化变量的常用MATLAB函数

函数 作用
zeros(n) 生成n*n大小的全0矩阵
zeros(m,n) 生成m*n大小的全0矩阵
zeros(size(arr)) 生成与arr大小相同的全0矩阵
ones(n) 生成n*n大小的全1矩阵
ones(m,n) 生成m*n大小的全1矩阵
ones(size(arr)) 生成与arr大小相同的全1矩阵
eye(n) 生成n*n大小的单位矩阵
eye(m,n) 生成m*n大小的单位矩阵
diag(V) 生成对角矩阵,V为一个行向量,向量中元素的个数等于行数
length(arr) 返回向量的长度,或二维数组的最长维数
size(arr) 返回arr的行数和列数

三、二维数组元素的访问

A=[1 21 6;5 17 9;31 2 7]
% 数组在内存中存储是按列存储
a=A(8)
% A(1) A(3) A(5)成了一个一维数组
b=A([1 3 5])
% A(1)A(2)为第一行;A(1)A(3)为第二行
c=A([1 2;1 3])
% 数组A中第三行第二列的元素
d=A(3,2)
% [1 2]为行;[1 3]为列;把第一行第二行圈起来,把第一列第三列圈起来,交集即为结果
e=A([1 2],[1 3])

运行结果:
MATLAB中的数组_第4张图片

A=[1 21 6;5 17 9;31 2 7]
% a为A的第三行所有元素
a=A(3,:)
% 删除A的第三行
A(3,:)=[];
A

运行结果:
MATLAB中的数组_第5张图片

四、常用的数组和矩阵运算

常用的数组和矩阵运算
运算 MATLAB形式 说明
数组加 a+b 数组加和矩阵加是相同的。a、b两者结构相同,对应元素相加
数组减 a-b 数组加和矩阵减是相同的。a、b两者结构相同,对应元素相减
数组乘 a.*b a和b逐元素相乘。两者结构相同,或其中之一为标量
矩阵乘 a*b a和b的矩阵乘法。a的列数等于b的行数
数组右除 a./b a和b逐元素相除:a(i,j)/b(i,j)。两者结构相同,或其中之一为标量
数组左除 a.\b a和b逐元素相除:b(i,j)/a(i,j)。两者结构相同,或其中之一为标量
矩阵右除 a/b 矩阵右除定义为a*inv(b),其中inv(b)为矩阵b的逆运算
矩阵左除 a\b 矩阵左除定义为inv(a)*b,其中inv(a)为矩阵a的逆运算
数组幂 a.^b a和b逐元素求幂。两者结构相同,或其中之一为标量
转置矩阵 a’ a的行列互换
增广矩阵 [a b] a(m * n1) 和 b(m * n2)的行数相同,生成新矩阵c(m*(n1+n2))

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