1.矩阵的概念
众所周知,矩阵是一个二维的数据阵列;
Matlab是一个基于矩阵的计算环境,最基本的的数据单元是矩阵,单个数值也存储为矩阵,在这种情况下,矩阵的大小为1乘1,再例如HelloWorld这样的字符元素,看作是1×11的矩阵,每个字符表示一个矩阵元素,另外,Matlab也支持有两个以上维度的数据结构,例如三维的数据结构,成为三维数组,以此类推,可达n维数组。
2.创建矩阵基本方法
基本运算符:[],即,使用中括号把矩阵元素数据括起来,用逗号或空格分隔同一行的元素,用分号或回车键分隔不同的行,程序示例如下:
[]%1*3的矩阵
[1,2,3]%1*3的矩阵
[;]%2*3的矩阵
[
]%2*3的矩阵
3.创建矩阵的常用函数
话不多说,直接看程序示例:
zeros(1,4)%1行4列的全0矩阵(第一个参数表示行数)
zeros(3,4)%3行4列的全0矩阵(第二个参数表示列数)
zeros(4)%4阶(4*4)全0矩阵(只有一个参数则行数列数相同)
ones(1,4)%1行4列的全1矩阵
eye(3)%3阶单位矩阵
eye(2,3)%2行3列的单位矩阵
magic(3)%3阶魔方矩阵
magic(30)%30阶魔方矩阵
4.矩阵的属性
矩阵属性是指,描述矩阵的信息,包括大小、长度、元素数目和维度等;
常用的函数,如,矩阵的大小:size,矩阵的长度:length(矩阵行数和列数中最大者为矩阵的长度),矩阵元素数目:numel,矩阵的维度ndims;
注意:矩阵的大小,是指矩阵的行数和列数,如2行3列的矩阵,矩阵大小为2*3,与之区别的是,矩阵的维度,是指二维、三维、四维,…,n维(也称为高维/多维数组),而平时的说法中,如,矩阵的维度是2*3,其实是在讲,矩阵的大小是2*3;
再注意,严格来讲,二维矩阵才能称为矩阵,三维及以上应该成为数组,因为三维及以上的数组是不存在矩阵运算法则的,而平时的说法中,矩阵和数组多混为一谈,但不影响交流和使用,我们也不必咬文嚼字。
程序示例如下:
a=[4;]%创建2*4矩阵
size(a)%获得矩阵的行数和列数,2和4
length(a)%矩阵长度:取行数、列数中的最大值,即为4
numel(a)%返回元素个数,即为8
ndims(a)%矩阵维度(2维度)
5.空矩阵
空矩阵是指,有一个或多个等于零的维度(0×0,0×1,1×0)
程序示例如下:
a=[]%创建空矩阵
size(a)%行列数都为0
length(a)%矩阵长度为0
numel(a)%元素个数为0
isempty(a)%判断是否为空矩阵,返回逻辑值1(真)
zeros(0,1)%创建空矩阵的其他方法
图文无关6.标量
标量是指,维度为1×1的矩阵,在Matlab中显示为单个实数或复数
程序示例如下:
a=2%创建标量
size(a)%自行运行程序,观察标量矩阵的各属性
length(a)
numel(a)
isempty(a)
isscalar(a)%判断是否为标量,返回逻辑值1(真)
7.向量
向量是指,维度为1×n或n×1的矩阵,在Matlab中显示为一个行或一个列
程序示例如下:
a=[]%创建1×3的向量
size(a)%自行运行程序,观察向量矩阵的各属性
length(a)
numel(a)
isempty(a)
isscalar(a)
isvector(a)%判断是否向量,返回逻辑值1(真)
8.数字序列
数据序列是一种特殊形式的矩阵,一般以行向量形式表现。
(1)冒号运算符(:)
应用格式:起始值:步长值:终止值
步长值可不写,默认为1,程序示例如下:
1:5%行向量,即,[45]
1:4.5%按照默认步长为1累计,终止值取到4(不能大于给定终止值),即,[4]
4:1%空矩阵(初始值4加步长1,无论如何,都取不到终止值1)
4:-1:1%行向量,即,[]
2.5:0.3:3.2%按0.3增长至终止值内,即,[2.52.83.1]
(2)创建序列的函数linspace
应用格式:linspace(初始值,终止值,元素数目)
元素数目可不写,默认为,步长按照公式自动计算:(初始值-终止值)/元素数目,程序示例如下:
linspace(1,5,5)%1-5取5个元素,即,[45]
linspace(1,5)%1-5范围内均匀取个元素
End