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