对于2D及1D数组,reshape的应用较为直观。只要记着matlab中矩阵的存放是按列进行的就行了。

如a=1:8;b=reshape(a,2,4),这b为

1 3 5 7

2 4 6 8

目前在科研中,3D数组的使用也是很多的。对于3D数组,就不像2D数组那么直观了。

但是,其实本质一样:列优先,然后行,最后页。

而b(1,2,3)其中,1指(纵向),即第一行;2指列(横向),即指第二列;3指页,及第三页。

对应于地幔对流软件Citcom,其存储格式为z方向,x方向,y方向

故,其对应的3D数组的格式应为:

b(nz,nx,ny)

例如:对于多维数组,如b(:,:,1)=[1,2;3,4],b(:,:,2)=[5,6;7,8],

则b的存放是1,3,2,4,5,7,6,8。

同理,矩阵的写入也是按列来的,对于这个2*2*2的矩阵b,reshape(b,2,4),那么就是把存放的1,3,2,4,5,7,6,8按列写入新的2*4矩阵,结果就是[1,2,5,6;3,4,7,8]。

下面再给出一写3D数组的介绍:

1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组。

2.三维数组 A=zeros(4,3,2) 是一个4行3列2页的三维全0数组。

3.利用直接索引方式生成多维数组

A=zeros(2,3) A(:,:,2)=ones(2,3) A(:,:,3)=4

上面的代码先生成一个二维数组作为三维数组的第一页,然后通过数组直接索引,添加第二页、第三页。

4.利用函数reshape和repmat生成多维数组 B=reshape(A,2,9)

则B实际上为:

B=[A(:,:,1) A(:,:,2) A(:,:,3)] %结果与上面一样。

reshape(B,2,3,3) reshape(B,[2 3

3]) %结果与上面一样。

5.利用repmat函数生成多维数组 C=ones(2,3) repmat(C,[1 1

3]) % repmat写出类似reshape的repmat(C,1,1,3)将显示出错

提示:repmat是通过数组复制创建多维数组的,上面的代码即是将数组C在行维和列维分别复制一次,然后再页维复制三次得到2×3×3的三维数组。

6.利用cat函数创建多维数组 a=zeros(2); b=ones(2); c=repmat(2,2,2);

D=cat(3,a,b,c)%创建三维数组 D=cat(4,a,b,c) %创建4维数组。

D(:,1,:,:) %查看第一列的数据。

size(D) %可以知道数组D的具体维数。

7:

squeeze函数用于删除多维数组中的单一维(即大小为1的那些维)

E=squeeze(D) size(D)

E的数据和D一样,但比D少了一维,只有2行、2列和3页。

再比如,一个四维矩阵c,2*3*2*2,我们对其赋值为:c(:,:,1,1)= [ 1,

2,3;4,5,6];c(:,:,2,1)=[ 7,8,9;10,11,12];c(:,:,1,2)= [ 10,

20,30;40,50,60];c(:,:,2,2)=[ 70,80,90;100,110,120];则c的存放为

1 4 2 5 3 6 7 10 8 11 9 12 10 40 20 50 30 60 70 100 80 110 90

120

将其再reshape为2*6*2三维矩阵d的时候,写入新的矩阵,先是第一页,按列写入;然后第二页。

d(:,:,1) = 1 2 3 7 8 9

4 5 6 10 11 12

d(:,:,2) = 10 20 30 70 80 90

40 50 60 100 110 120

matlab 三维矩阵 reshape,matlab中的reshape及3D数组reshape的注意事项转载相关推荐

  1. matlab 三维矩阵向量化,Matlab:向量化三维矩阵的工艺

    我实际上向量化了我的一个代码,并且遇到了一些问题.Matlab:向量化三维矩阵的工艺 这是我最初的代码: CoordVorBd = random(N+1,3) CoordCP = random(N,3 ...

  2. matlab 测量矩阵,压缩感知中的常见测量矩阵及其MATLAB实现代码

    压缩感知中的常见测量矩阵及其MATLAB实现代码 压缩感知中的常见测量矩阵及其MATLAB实现代码 原文链接:http://blog.csdn.net/jbb0523/article/details/ ...

  3. matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程

    VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...

  4. matlab 求矩阵程序设计,MATLAB程序设计教程(2)—MATLAB矩阵及其运算(3)

    (3) [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量. 例2-12 用求特征值 ...

  5. MATLAB“内部矩阵维度必须一致”(及要注意数组的乘法运算是要带点)

    举出这一题为例子 第一遍输出报错 修改后 图中可见连接exp与sin函数之间的乘号*前面如果没有"."则会报错内部矩阵维度必须一致 明显MATLAB把输入的式子当作矩阵处理了,而其 ...

  6. Matlab 三维相图,用MATLAB绘制Pb-Sn-Sb三维立体相图

    第41卷 第8期 稀 有 金 CHINESE J0URNAL OF RARE METALS 2017年 8月 Aug.2017 用 MATLAB绘制 Pb-Sn-Sb三维立体 相 图 周 亮 ,孔令鑫 ...

  7. matlab 判断矩阵奇异,Matlab 奇异值、奇异矩阵、svd函数

    奇异值: 奇异值分解法是线性代数中一种重要的矩阵分解法,在信号处理.统计学等领域有重要应用. 定义:设A为m*n阶矩阵,A'表示A的转置矩阵,A'*A的n个特征值的非负平方根叫作A的奇异值.记为σi( ...

  8. matlab对矩阵拟合,matlab曲线拟合与矩阵计算.ppt

    matlab曲线拟合与矩阵计算 Matlab应用重点(1)曲线拟合 曲线拟合定义 在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点.针对 ...

  9. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  10. python绘制三维曲面图-Python中使用Matplotlib绘制3D图形示例

    原标题:Python中使用Matplotlib绘制3D图形示例 3D图形能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的3D绘图工具.3D图形在数据分析.数据建模. ...

最新文章

  1. tf.nn.relu
  2. Python学习之路-12 (递归)
  3. 手机自动化测试:appium源码分析之bootstrap十二
  4. Android RecyclerView实现九宫格效果
  5. 绕开登录进行爬虫_爬虫小偏方:绕开登陆和访问频率控制
  6. Skype For Business Server 2015 离线消息
  7. 2017.9.9 堵塞的交通 思考记录
  8. WPF | 控制库| MultiSelectCombobox
  9. 采用Locust对grpc协议进行压测
  10. win11无法下载steam怎么办 Windows11无法下载steam的解决教程
  11. VUE中使用lib-flexible和 px2rem-loader
  12. 为什么找不到解决方案?--答案就是:转个弯 这里以“解决表示图左边缺失线条、边缘线、分割线问题”为例...
  13. oracle比较日期大小函数输出,oracle 日期比较及惯用函数
  14. 诺顿误杀导致系统崩溃--起因及对策
  15. 电脑主板报警声音的故障现象对照表
  16. 抖音短视频如何去水印
  17. 关于2022年国外广告联盟emu还能做吗?还赚钱不
  18. 【FICO】标准成本、计划成本、实际成本、目标成本
  19. 百钱买百鸡,3文钱一只公鸡,2文钱一只母鸡,1文钱可以买3个小鸡,要求用100文钱买100只鸡
  20. 网站如何做seo优化

热门文章

  1. 初探Linux内核态——通过proc文件系统作快速问题定位
  2. Java的GUI学习四(事件监听机制)
  3. 51Nod - 1086 (多重背包+2进制优化)
  4. deque(双向队列)
  5. 云计算 码率适配限速_5G 成熟后,带宽足够且云计算力够大,会不会对 PC 的升级需求放缓?...
  6. ICRA2021会议-----SLAM方向汇总
  7. 用VScode写html文件以及调用浏览器运行
  8. java 中使用_java中运算符的使用方法
  9. java为什么序列化_什么是Java序列化、为什么要序列化、JAVA序列化有哪些方式(性能由低至高)...
  10. python 灰度图像素灰度值求和_如何在python中更改灰度图像中特定类型的像素值?...