前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab学习笔记11_3 高维数组处理 filp, shiftdim, size, permute, ipermute

matlab学习笔记11_3 高维数组处理 filp, shiftdim, size, permute, ipermute

作者头像
演化计算与人工智能
发布2020-08-14 15:58:43
1K0
发布2020-08-14 15:58:43
举报

本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是要奋发努力,拼搏上进,学好技术,才能师夷长技以制夷,为中华之崛起而读书!

本文很多摘录自图书资料,不做任何商业用途,仅做技术分享,侵权删除!请不要放弃自己的理想和道路,加油!!

filp

  • 翻转元素顺序

语法

B = flip(A) B = flip(A,dim)

说明

B = flip(A) 返回的数组 B 具有与 A 相同的大小,但元素顺序已反转。B 中重新排序的维度取决于 A 的形状:

如果 A 为向量,flip(A) 将沿向量的长度方向反转元素顺序。

如果 A 为矩阵,flip(A) 将反转每列元素的顺序。

如果 A 为 N 维数组,flip(A) 将按 A 的大小值不等于 1 的首个维度上进行运算。

B = flip(A,dim) 沿维度 dim 反转 A 中元素的顺序。例如,如果 A 为矩阵,flip(A,1) 将反转每一列中的元素,flip(A,2) 将反转每一行中的元素。

翻转字符向量

代码语言:javascript
复制
A = 'no word, no bond, row on.';
B = flip(A)
B =
'.no wor ,dnob on ,drow on'

翻转列向量

代码语言:javascript
复制
A = [1;2;3];
B = flip(A)
B = 3×1

     3
     2
     1

翻转矩阵

翻转元胞数组

输入参数


shiftdim

  • 移动数组维度

语法

  • B = shiftdim(A,n)
    • B = shiftdim(A,n) 将数组 A 的维度移动 n 个位置。当 n 为正整数时,shiftdim 向左移动维度;当 n 为负整数时,向右移动维度。例如,如果 A 是 2×3×4 数组,则 shiftdim(A,2) 返回 4×2×3 数组。
  • B = shiftdim(A)
    • B = shiftdim(A) 返回数组,其元素与 A 相同,但删除了前面的长度为 1 的维度。
  • [B,m] = shiftdim(A)
    • [B,m] = shiftdim(A) 还返回删除的长度为 1 的维度的数量。

四维矩阵

  • 创建一个 4×2×3×5 数组。将维度向左移动 2 个位置,使前两个维度长度绕回到最后两个维度。
代码语言:javascript
复制
A = rand(4,2,3,5);
B = shiftdim(A,2);
size(B)
ans = 1×4

     3     5     4     2
  • 将维度向右移动 2 个位置,使前面 2 个维度的长度为 1。向右移动不会将维度长度绕回。
代码语言:javascript
复制
C = shiftdim(A,-2);
size(C)
ans = 1×6

     1     1     4     2     3     5

移动矩阵维度

  • 计算 5 维数组 A,并删除前面的长度为 1 的维度。shiftdim 函数将移动 2 个维度,并返回三维数组 B。
代码语言:javascript
复制
A = rand(1,1,3,2,4);
[B,nshifts] = shiftdim(A);
nshifts
nshifts = 2 % 表示被删除的维度的个数
size(B)
ans = 1×3 % 表示被删除的维度的值

     3     2     4

将 B 的维度向左移动两次。

C = shiftdim(B,2);
size(C)
ans = 1×3

     4     3     2

将 C 的维度向右移动一次。

D = shiftdim(C,-1);
size(D)
ans = 1×4

     1     4     3     2

size

  • 获取矩阵形状大小

permute

  • 置换数组维度

语法

  • B = permute(A,dimorder)

说明

  • B = permute(A,dimorder) 按照向量 dimorder 指定的顺序重新排列数组的维度。例如,permute(A,[2 1]) 交换矩阵 A 的行和列维度。因为在矩阵中第一维度是行数,第二个维度是列数

三维数组

  • 创建一个342数组并对其进行置换,交换第一个维度和第三个维度,从而得到243数组

ipermute

  • 逆置换数组维度

语法

  • A = ipermute(B,dimorder)

说明

A = ipermute(B,dimorder) 按照向量 dimorder 指定的顺序重新排列数组 B 的维度,使得 B = permute(A,dimorder)。逆置换 A 是满足如下条件的数组:当您使用相同的维度顺序对其进行置换时,结果等于原始数组 B。即A置换成为B,B通过逆置换返回A

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • filp
    • 语法
      • 说明
        • 翻转字符向量
          • 翻转列向量
            • 翻转矩阵
              • 翻转元胞数组
                • 输入参数
                • shiftdim
                  • 语法
                    • 四维矩阵
                      • 移动矩阵维度
                      • size
                      • permute
                        • 语法
                          • 说明
                            • 三维数组
                            • ipermute
                              • 语法
                                • 说明
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档