一、shiftdim函数的作用与用法介绍

shiftdim是matlab中一个很常用的计算函数,主要作用是用来帮助矩阵维数变化和维数移动,将原来的矩阵左移和右移n个单位,下面我们看一下该shiftdim原文中对该语法函数的相关描述。

上文中的英文简单翻译过来就是比如说目前是一个A = shiftdim(X,M)的矩阵函数,该函数的实际意思就是将X这个函数按照M这个数值大小进行左移和右移,将这个矩阵进行重新的排列变化,如果M是正数的话那么该矩阵就会向左移动,如果M是个负值那么这个矩阵就会向右进行移动。

移动位数跟M的大小相关,M是1的话,那就是统一向左移动一位,最左边的推到最右边,然后最右边的往左移动一位,第二位移动移动到第一位,大概是这个意思。

如果M值等于2的话,那就是统一向左移动两个位数,第一位推到最后一位然后再向左移动一位,如果值是-2,就是每一位上都统一向右移动两个位数。

相关文章:

二、语法结构

语法一结构案例:E=shiftdim(F,m);

语法一是shiftdim最基本的用法,其主要作用我们在上文中已经讲过了,该案例的意思是将这个多维数组向左或向右移动M个位置将矩阵进行变换。

M是正整数就向左移动M个位置,M是负整数就向右移动M个位置,比如现在有一个F=5×7×2的数组,假设M的值是2的话,经过移动变化后的值变为E=2×5×7,因此就得到一个E=2×5×7的全新的数组。

语法二结构案例:F = shiftdim(E);

语法二的实际意思是返回了一个跟E的数组元素相同的一个新的F的数组,唯一的不同的点就是该元素中第一位的维度被删除掉了,也就是说使用了该函数后维度是1的被删除掉。

语法三结构案例:[F,n] = shiftdim(E);

语法三的代码表明将原先的数组E已经删除的维度是1的重新返回过来,重新返回出去。

三、shiftdim()移动维度

上文中讲了三个语法结构案例,刚好我们可以用这三个语法来讲解一下matlab中的shiftdim的移动维度是怎么做的。

上图定义了一个数组A,它的维度是五维,该题目的要求就是用shiftdim()这个语法练习一下该语法删除维度是1的元素,然后返回的数值是多少?

从图中可以看出,数组A中维度是1的有两个值,得到的返回出来的数值刚好是2,正好应对了我们上文讲的该语法的正确性。

然后该数组A又再次进行变换移动了两个维度后就得到了一个B=3×2×4的这样一个三维的数组。

接着上面的三维数组B=3×2×4这个数组接着进行下面的计算,接下来我们看上图中的代码,首先它应用了shiftdim(B,2)这个语法,将得到的三维数组B进行向左移动了两个位置,因为括号里面的参数是2又是正整数,所以它向左移动了两位。因此就得到了一个C=4×3×2移动两位后的这么一个三维数组。

然后接下来又考察了一下参数是负值的话向右移动的这么一个案例,图中应用shiftdim(C,-1)这个语法,由于括号中的参数是负值,值又是1,因此它向右移动了一个位置后就得到了一个D=3×2×4的三维数组。

相关文章:

四、相关示例

相关提问问题示例贴图:

上图是网友提问的shiftdim的具体使用和具体的相关作用的问题,刚好借着这个问题和推荐回答让大家加深一下对该函数的使用用法的印象。

首先定义了一个data数组,该数组使用reshape函数按照里面的参数进行变化,得到了一个2×2×1的三维数组,

然后将这个数组调用shiftdim()方法逐渐的进行变换位数,参数是1就是向左移动一位,值就会发生了一位的变化,最终的值变成2×1×2,然后再调用一次shiftdim()方法向左再移动两位,值就变成了2×2×1。

像这样以此类推,不管是shiftdim()里面的参数是2、3、4或者5都是按照此种方法进行移动变换,相反-2、-3、-4等负值的移动方法刚好与之相反,都是向右移动。

相关文章:

MATLAB的用途与使用方法,matlab shiftdim函数作用用法与shiftdim()移动维度相关推荐

  1. c怎么调用matlab dll,matlab和c++调用DLL方法(最新整理)

    <matlab和c++调用DLL方法(最新整理)>由会员分享,可在线阅读,更多相关<matlab和c++调用DLL方法(最新整理)(6页珍藏版)>请在人人文库网上搜索. 1.M ...

  2. matlab微分方程组边值,matlab求解常微分方程边值问题的方法

    matlab求解常微分方程边值问题的方法 Matlab 求解常微分方程边值问题的方法:bvp4c 函数 常微分方程的边值问题,即 boundary value problems ,简称 BVP 问题, ...

  3. matlab做信号发生,声卡和Matlab的虚拟信号发生器的工作原理

    声卡从话筒中获取声音模拟信号,通过模数转换器(ADC),将声波振幅信号采样转换成一串数字信号,存储到计算机中.重放时,这些数字信号送到数模转换器(DAC),以同样的采样速度还原为模拟波形,放大后送到扬 ...

  4. 基于MATLAB的多项式数据拟合方法研究-毕业论文

    摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...

  5. MATLAB常见非线性可视化绘制方法-相图与相空间(二维线性相图与非线性相空间)

    MATLAB常见非线性可视化绘制方法-相图与相空间(二维线性相图与非线性相空间) 0 引言 1 简单二阶微分方程 1.1 最简单的线性系统 1.2 简单的非线性系统 1.3 简单的时变系统 2 线性系 ...

  6. 直接法 matlab,解线性方程组直接方法matlab用法.doc

    解线性方程组直接方法matlab用法 在这章中我们要学习线性方程组的直接法,特别是适合用数学软件在计算机上求解的方法. 2.1 方程组的逆矩阵解法及其MATLAB程序 2.1.3 线性方程组有解的判定 ...

  7. matlab中fminunc函数使用方法,[分享]无约束非线性规划函数\fminunc函数使用方法(MATLAB)...

    [分享]无约束非线性规划函数\fminunc函数使用方法(MATLAB) 无约束非线性规划函数\fminunc函数使用方法(MATLAB) %用于求解无约束非线性规划的函数有:fminsearch和f ...

  8. 牛顿斯科特MATLAB求积分,详解Matlab求积分的各种方法

    详解Matlab求积分地各种方法 一.符号积分 符号积分由函数int来实现.该函数地一般调用格式为: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示地默认变量对被积函数或符号 ...

  9. 2021-04-09 随机模拟—蒙特卡洛方法 Matlab代码实现

    随机模拟-蒙特卡洛方法 Matlab代码实现 蒙特卡洛方法 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出 ...

最新文章

  1. 【公开课预告】百度语言与知识最新技术成果详解
  2. 【转】 SED多行模式空间
  3. 知识工程.Vs.软件构架,框架,设计模式.
  4. 暑期实习NLP算法岗面经总结
  5. 【待解答】文件目录可以利用foreach边遍历边删除操作,为什么?
  6. 特征缩放的效果:从词袋到 TF-IDF
  7. Spring 整合 Disruptor 第一个版本
  8. python定位相邻节点_Python selenium —— 父子、兄弟、相邻节点定位方式详解
  9. Python容器专题 - 列表(list)
  10. 联想y50更换固态硬盘_旧笔记本电脑更换固态硬盘
  11. 控制台输出Security Warning: The negotiated TLS 1.0 is an insecure protocol and is suported for backward c
  12. 2021年Java开发爆款推荐!黑马java培训视频网盘下载
  13. 经理人必看的8大网站
  14. 应作如是观--全息的宇宙
  15. uniapp 微信支付功能
  16. 微信卡券领用中的问题
  17. Kali linux 学习笔记(七十五)拒绝服务——teardrop 2020.4.15
  18. redux入门_Redux入门
  19. 运维工程师主要做什么_弱电工程IT运维工作到底是做什么的?
  20. zsh补全中compinit full initialization问题

热门文章

  1. linux下mysql大小写区分问题
  2. unity用ComputeShader做模型流体喷涂喷绘工具
  3. Java实现石头剪刀布游戏
  4. 数据结构 排序 思考题4
  5. OpenWrt——修改软件源
  6. 对计算机技术的发展方向研究,现代计算机技术的发展方向趋势
  7. 性能测试必备知识(7)- 深入理解“CPU 使用率”
  8. ABAP READ TABLE
  9. 51nod-1366 贫富差距——并查集
  10. TRACE32——Go.direct