首页 > 编程笔记 > MATLAB笔记 阅读:24

MATLAB改变矩阵大小和维度的多种方式(附带实例)

在 MATLAB 中,根据运算时的不同情况和需要,矩阵大小及结构的改变方式主要有旋转矩阵、改变矩阵维度、删除矩阵元素等。

旋转矩阵与改变矩阵维度的函数如下表所示。

表:旋转矩阵与改变矩阵维度的函数
函数名称 函数功能
fliplr(A) 对矩阵每一行均进行逆序排列
flipud(A) 对矩阵每一列均进行逆序排列
flip(A, dim) 生成一个在 dim 维矩阵 A 内的元素交换位置的多维矩阵
rot90(A) 生成一个由矩阵 A 逆时针旋转 90° 得到的新矩阵
rot90(A, k) 生成一个由矩阵 A 逆时针旋转 k×90° 得到的新矩阵
reshape(A, m, n, ..., p) 生成一个 m×n×…×p 维的矩阵,其元素以线性索引的顺序从矩阵 A 中取得
如果矩阵 A 中没有 m×n×…×p 个元素,那么将返回一条错误提示信息
repmat(A,[m n...,p]) 创建一个和矩阵 A 具有相同元素的 m×n×…×p 维的多维矩阵
shiftdim(A, n) 矩阵的列移动 n 步。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 时,对矩阵的每一行进行排序
sort(A, dim, mode) 当 mode 为'ascend'时,进行升序排序;当 mode 为 'descend' 时,进行降序排序
[B, IX] = sort(A,...) IX 为排序后元素在原矩阵中的行位置或列位置的索引

【实例】矩阵的旋转与维度的改变。在命令行窗口中输入以下语句,并显示相应的输出结果。
>> Randoma = randn(1,4)    % 生成随机的 1×4 矩阵
Randoma =
    0.6715   -1.2075    0.7172    1.6302

>> Randomb = randn(2)    % 生成随机的 2×2 矩阵
Randomb =
    0.4889    0.7269
    1.0347   -0.3034

>> Randoma = reshape(Randoma, 2, 2)    % 将 1×4 矩阵变为 2×2 矩阵
Randoma =
    0.6715    0.7172
   -1.2075    1.6302

>> Randoma = fliplr(Randoma)    % 将 2×2 矩阵每行逆序排列
Randoma =
    0.7172    0.6715
    1.6302   -1.2075

>> Randoma = rot90(Randoma)    % 将 2×2 矩阵逆时针旋转 90°
Randoma =
    0.6715   -1.2075
    0.7172    1.6302

>> Randomc = cat(2, Randoma, Randomb)    % 将两个 2×2 矩阵组合为一个 2×4 矩阵
Randomc =
    0.6715   -1.2075    0.4889    0.7269
    0.7172    1.6302    1.0347   -0.3034

相关文章