快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

MATLAB自学笔记(五):基本矩阵操作

matlab仿真 파충충好气气 4741℃ 0评论

基本矩阵操作

1.矩阵和数组的概念及区别

矩阵基本操作:构建、改变维度与大小、索引、获取属性信息、改变结构

首先来区分行向量与列向量

其中逗号“,”可换成空格,其表示的是行向量

分号“;”表示的是列向量

注:数组的建立使用的是方括号[],而元组的建立用的是花括号{},切勿记混。

矩阵最早来自于方程组的系数以及常数所构成的方阵,这一概念是在19世纪被英国数学家凯利提出。

数组则是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按照序列排列的同类数据元素的集合称为数组。

在MATLAB中,按照数组元素的类型不同,可分为:数值数组、字符数组、单元数组、构造数组等。

在MATLAB中,矩阵和数组的区别在于:

  • 矩阵是数学上的概念;数组是计算机程序设计领域的概念。
  • 矩阵,作为变换或映射算符的体现,其有着明确而严格的数学规则;
  • 数组,其规则为MATLAB软件定义,目的在于使数据管理方便、操作简单、命令形式自然、执行计算有效

在MATLAB中,矩阵和数组的联系在于:

  • 在MATLAB中,矩阵以数组的形式存在。因此一维数组相当于向量,二维数组相当于矩阵。因此,矩阵是数组的子集。

2.矩阵的构造

矩阵构造方式有两种。第一种是直接构造,如上所示;另一种是利用MATLAB中的构造函数:

函数名称 函数功能
ones(m,n,…,p) 构造一个m*n*…*p的1矩阵(元素全是1)
zeros(m,n,…,p) 构造一个m*n*…*p的0矩阵(元素全是0)
eye(m,n) 构造一个m*n的单位阵
magic(n) 构造一个n*n的奇异矩阵(每一行每一列元素之和都相等)
rand(m,n,…,p) 构造一个m*n*…*p的矩阵,其元素为0~1之间均匀分布的随机数
randn(m,n,…,p) 构造一个m*n*…*p的矩阵,其元素零均值、单位方差的正态分布随机数
diag(A,k) 构建一个由矩阵A第k条对角线的元素组成的列向量。k属于整数
triu(A,k) 构建一个和A大小相同的上三角矩阵。该矩阵第k条对角线及以上元素为A中对应元素,其余为0。k属于整数
tril(A,k) 构建一个和A大小相同的下三角矩阵。该矩阵第k条对角线及以下元素为A中对应元素,其余为0。k属于整数

举例如下:

ones:

zeros:

eye:

magic:

rand:

diag:

triu:

tril:

空矩阵:

注:矩阵默认数据类型为 double 类型的,在某些计算中有可能会出现数据类型不匹配的问题,因此需要搞清楚自己想要的结果是那种数据类型的,提前做好数据类型转换工作。具体转换方法在以后会讲到。

3.矩阵大小及结构的变换

  • fliplr(A):矩阵每一行均进行逆序变换
  • flipud(A):矩阵每一列均进行逆序变换
  • flipdim(A,dim):生成在一个dim维矩阵A内的元素交换位置的多维矩阵
  • rot90(A,k):生成一个由矩阵A逆时针旋转k×90°生成的新矩阵
  • reshape(A,m,n):生成一个m×n×…×p维的矩阵,其元素以线性索引的顺序从矩阵A中取得

若A中没有m×n×…×p个元素,则返回错误

  • repmat(A,[m,n,…,p]):创建一个和矩阵A相同元素的m×n×…×p块的多维矩阵
  • shiftdim(A,n):矩阵的列移动n步。左正右负
  • squeeze(A):返回没有空维的矩阵A
  • cat(dim,A,B):将矩阵A和B组成一个dim维的多维矩阵
  • permute(A,order):根据向量order来改变矩阵A的维数顺序
  • ipermute(A,order):进行permute的逆变换
  • sort(A):对一维或二维矩阵进行升序排列,并返回排序后的矩阵;

当A为二维矩阵时,对矩阵的每一列分别进行排序

  • sort(A,dim):对矩阵按指定的方向进行升序排列,并返回升序后的矩阵。

dim = 1时,对矩阵的每一列排序;dim = 2时,对矩阵的每一行排序

以上函数较多,在此不列举实例。

4.矩阵的下标引用

双下标索引:

例:A(2,3)表示矩阵A中的第2行第三列元素。

单下标索引:

例:对于4×4矩阵A,A(5)表示第二行第一列元素。

索引转换:

双下标转单下标:sub2ind

举例:

由此可以看出,MATLAB中数组的排序方式是按列排序的。

单下标转双下标:ind2sub

 

转载请注明:燕骏博客 » MATLAB自学笔记(五):基本矩阵操作

赞赏作者

微信赞赏支付宝赞赏

喜欢 (1)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址