MATLAB学习笔记第二篇:基本矩阵操作

简介

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。顾名思义,MATLAB在矩阵处理中有巨大的优势。本文将介绍一些基本的矩阵操作。

1、矩阵和数组的概念区别

(1)矩阵是数学中的概念,而数组是计算机程序设计中的概念。

(2)矩阵在运算时有严格的数学运算要求,涉及的一些矩阵运算知识可以在线性代数中了解;数组是计算机程序为了方便计算机处理数据设计的。

在MATLAB中,矩阵是以数组的形式存在的,一维数组相当于向量,二维数组相当于矩阵,矩阵可以是数组,数组不一定是矩阵。

2、矩阵的构造

在MATLAB中,矩阵的构建方式有两种,一种是对矩阵进行赋值操作,另一种是采用MATLAB内置的构建矩阵指令进行矩阵的构建。以下为部分矩阵构建举例:

(1)建立简单矩阵

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
%构建三行三列矩阵
>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3
4 5 6
7 8 9

%构建行向量
>> A=[1 2 3]

A =

1 2 3

%构建列向量
>> A=[1;2;3]

A =

1
2
3

(2)通过指令建立特殊矩阵

1
2
3
4
5
6
7
8
%构建3*3的全1矩阵
>> A=ones(3)

A =

1 1 1
1 1 1
1 1 1

(3)建立向量、标量和空矩阵

向量指1行m列或者n行1列的矩阵;标量指1行1列的矩阵;空矩阵指任何元素都不存在的矩阵,空矩阵和零矩阵不同点在于空矩阵无任何元素,而零矩阵所有元素都是0,且矩阵不是空的,需要占用一定的空间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
%构建行向量
>> A=[1 2 3]

A =

1 2 3

%构建列向量
>> A=[1;2;3]

A =

1
2
3

%构建零矩阵
>> A=zeros(3)

A =

0 0 0
0 0 0
0 0 0

3、矩阵大小以及结构改变

矩阵的大小和结构在数学中可以采用许多方法进行改变。在MATLAB中内置了许多函数可以实现旋转矩阵、改变矩阵维度、删除矩阵元素等改变矩阵大小以及结构。

4、矩阵下标应用

(1)矩阵的下标引用分为单下标引用和双下标引用。单下标引用采用列元素优先,双下标引用表示行列确定的元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
%矩阵的两种下标引用方式对比
>> A=[1 2 3;4 5 6;7 8 9];
>> A(3)

ans =

7

>> A(3,1)

ans =

7

(2)先行引用矩阵元素

矩阵中某一元素的单下标索引值和双下标索引值之间可以通过MATLAB内部函数进行转换,双下标索引值转换为单下标索引值的句法形式:IND=sub2ind(siz, i , j);同样单下标索引值转换为双下标索引值的句法形式:[I J]=ind2sub(siz, ind)。

所谓索引,就是把整个向量或矩阵重拍成一维向量后所处的位置。如A=[1: 3; 4: 6](2行3列矩阵),排序后排成[1; 4; 2; 5; 3; 6](一维列向量),1对应的索引是1,4对应的索引是2,2对应的索引是3……以此类推。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%3行3列矩阵中(3,3)元素的下标转换为单下标
>> A=[1 2 3;4 5 6;7 8 9];
>> B=size(A);
>> IND=sub2ind(B,3,3)

IND =

9

%3行3列矩阵中单下标为9的元素的下标转换为双下标,I为行,J为列
>> A=[1 2 3;4 5 6;7 8 9];
>> B=size(A);
>> [I J]=ind2sub(B,9)

I =

3


J =

3

5、矩阵信息的获取

(1)矩阵的结构

(2)矩阵的大小

(3)矩阵的维度

(4)矩阵的数据类型

(5)矩阵占用的内存

6、矩阵的保存和加载

(1)矩阵的存储方法

(2)矩阵元素寻址

(3)矩阵元素的赋值

基本语法:

A(i, j)= value(值):矩阵中对应的元素值等于右边的值。

A = []:删除矩阵中所有的元素。

(4)矩阵元素的扩展与删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
%整行赋值
>> A=[1 1;2 2];
>> A(3,:)=3

A =

1 1
2 2
3 3

%单个矩阵元素赋值的办法增加新元素
>> A(4,1)=4;
>> A(4,2)=5

A =

1 1
2 2
3 3
4 5

%使用空矩阵[]删除矩阵中的整行或整列
>> A(2,:)=[]

A =

1 1
3 3
4 5

MATLAB中内置了矩阵合并函数,可以通过调用矩阵合并函数实现矩阵的扩展。