概述
在上一节中,我们介绍了如何创建一个矩阵,并且介绍了MATLAB中的一些运算符。在本节中,我们将在深入学习MATLAB中的矩阵。
本次的内容有点多,划一下重点:
size函数:创建矩阵和确定循环结构的循环次数
reshape函数:重新排列矩阵
sort函数:内置的sort函数比自己编写的排序更高效
[ ]运算符:串联矩阵最重要的步骤
repmat函数:重复矩阵的拼接
索引:功能强大,针对性的选取数组元素
矩阵的属性
复习一下之前介绍过的MATLAB命令:(>> whos)。
功能为显示所有变量的属性。有时候我们需要根据矩阵的属性来做一些操作就需要用到矩阵的一些相关属性。常用的属性都可以通过函数来调用:size,length,isrow,numel等。
size
size函数返回矩阵的各个维度的长度,调用方法为:sz = size(A)
% size ()
% 命令行输入
A = zeros(3,4); % 先创建一个3×4的零矩阵,观察以下几个值
S = size(A)
[m,n] = size(A)
% 补充:这样写是能够让函数返回两个不同的输出参数。
% 调用函数时,系统会告诉函数有多少个输入参数和输出参数
% 函数本身则根据输入输出参数的数量决定自己的输出参数。
mm = size(A,1)
nn = size(A,2)
将以上命令输入至命令行,将得到以下输出:
% 命令行输出
S =
3 4
% 直接调用返回一个输出参数时:
% size函数返回一个矩阵包含各个维度长度的矩阵。
m =
3
n =
4
% 直接调用返回两个输出参数时:
% size函数返回两个标量各自表示各个维度长度。
mm =
3
nn =
4
% 调用size函数时,加上想查询的具体维度,可以返回该维度上的长度
% 在这里,1指横坐标,2指纵坐标,3指竖坐标
length
length函数返回矩阵的最长维度的长度,调用方法为:L = length(A)
% length ()
% 命令行输入
A = zeros(3,4); % 先创建一个3×4的零矩阵
S = length(A)
将以上命令输入至命令行,将得到以下输出:
% 命令行输出
S =
4
% length 函数返回矩阵的最长维度的长度,相当于size(A)的最大值。
isrow
isrow如其名,作用就是询问矩阵是不是行向量。
同样作用的还有iscolumn确定矩阵是不是列向量,isempty确定矩阵是不是为空
% isrow ()
% 命令行输入
A = zeros(1,4); % 创建一个1×4的矩阵,观察以下几个值
S1 = isrow(A)
S2 = iscolumn(A)
S3 = isempty(A)
whos S1
将以上命令输入至命令行,将得到以下输出:
% 命令行输出
S1 =
1
S2 =
0
S3 =
0
Name Size Bytes Class Attributes
S1 1x1 1 logical
% isrow 函数返回一个布尔值1或0
% 用whos命令可以看到返回的类型是logical(逻辑值非一即零,非真即假)。
numel
numel函数返回数组元素的数量,
A = zeros(3,4); % 创建一个1×4的矩阵,观察以下几个值
n = numel(A)
将以上命令输入至命令行,将得到以下输出:
% 命令行输出
n =
12
% 返回矩阵所有元素的个数
矩阵的排列
矩阵的另一类操作是排列,对矩阵内的元素的相对位置重新处理,(很抽象的描述,还是看看函数的功能比较容易)。常见的的函数有reshape,sort,flip,circshift等
reshape
reshape 函数顾名思义就是对矩阵重排,
A = magi