简介
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。顾名思义,MATLAB在矩阵处理中有巨大的优势。本文将介绍一些基本的矩阵操作。
1、矩阵和数组的概念区别
(1)矩阵是数学中的概念,而数组是计算机程序设计中的概念。
(2)矩阵在运算时有严格的数学运算要求,涉及的一些矩阵运算知识可以在线性代数中了解;数组是计算机程序为了方便计算机处理数据设计的。
在MATLAB中,矩阵是以数组的形式存在的,一维数组相当于向量,二维数组相当于矩阵,矩阵可以是数组,数组不一定是矩阵。
2、矩阵的构造
在MATLAB中,矩阵的构建方式有两种,一种是对矩阵进行赋值操作,另一种是采用MATLAB内置的构建矩阵指令进行矩阵的构建。以下为部分矩阵构建举例:
(1)建立简单矩阵
1 | %构建三行三列矩阵 |
(2)通过指令建立特殊矩阵
1 | %构建3*3的全1矩阵 |
(3)建立向量、标量和空矩阵
向量指1行m列或者n行1列的矩阵;标量指1行1列的矩阵;空矩阵指任何元素都不存在的矩阵,空矩阵和零矩阵不同点在于空矩阵无任何元素,而零矩阵所有元素都是0,且矩阵不是空的,需要占用一定的空间。
1 | %构建行向量 |
3、矩阵大小以及结构改变
矩阵的大小和结构在数学中可以采用许多方法进行改变。在MATLAB中内置了许多函数可以实现旋转矩阵、改变矩阵维度、删除矩阵元素等改变矩阵大小以及结构。
4、矩阵下标应用
(1)矩阵的下标引用分为单下标引用和双下标引用。单下标引用采用列元素优先,双下标引用表示行列确定的元素。
1 | %矩阵的两种下标引用方式对比 |
(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 | %3行3列矩阵中(3,3)元素的下标转换为单下标 |
5、矩阵信息的获取
(1)矩阵的结构
(2)矩阵的大小
(3)矩阵的维度
(4)矩阵的数据类型
(5)矩阵占用的内存
6、矩阵的保存和加载
(1)矩阵的存储方法
(2)矩阵元素寻址
(3)矩阵元素的赋值
基本语法:
A(i, j)= value(值):矩阵中对应的元素值等于右边的值。
A = []:删除矩阵中所有的元素。
(4)矩阵元素的扩展与删除
1 | %整行赋值 |
MATLAB中内置了矩阵合并函数,可以通过调用矩阵合并函数实现矩阵的扩展。