matlab 三维矩阵 reshape,matlab中的reshape及3D数组reshape的注意事项转载
对于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的注意事项转载相关推荐
- matlab 三维矩阵向量化,Matlab:向量化三维矩阵的工艺
我实际上向量化了我的一个代码,并且遇到了一些问题.Matlab:向量化三维矩阵的工艺 这是我最初的代码: CoordVorBd = random(N+1,3) CoordCP = random(N,3 ...
- matlab 测量矩阵,压缩感知中的常见测量矩阵及其MATLAB实现代码
压缩感知中的常见测量矩阵及其MATLAB实现代码 压缩感知中的常见测量矩阵及其MATLAB实现代码 原文链接:http://blog.csdn.net/jbb0523/article/details/ ...
- matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程
VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...
- matlab 求矩阵程序设计,MATLAB程序设计教程(2)—MATLAB矩阵及其运算(3)
(3) [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量. 例2-12 用求特征值 ...
- MATLAB“内部矩阵维度必须一致”(及要注意数组的乘法运算是要带点)
举出这一题为例子 第一遍输出报错 修改后 图中可见连接exp与sin函数之间的乘号*前面如果没有"."则会报错内部矩阵维度必须一致 明显MATLAB把输入的式子当作矩阵处理了,而其 ...
- Matlab 三维相图,用MATLAB绘制Pb-Sn-Sb三维立体相图
第41卷 第8期 稀 有 金 CHINESE J0URNAL OF RARE METALS 2017年 8月 Aug.2017 用 MATLAB绘制 Pb-Sn-Sb三维立体 相 图 周 亮 ,孔令鑫 ...
- matlab 判断矩阵奇异,Matlab 奇异值、奇异矩阵、svd函数
奇异值: 奇异值分解法是线性代数中一种重要的矩阵分解法,在信号处理.统计学等领域有重要应用. 定义:设A为m*n阶矩阵,A'表示A的转置矩阵,A'*A的n个特征值的非负平方根叫作A的奇异值.记为σi( ...
- matlab对矩阵拟合,matlab曲线拟合与矩阵计算.ppt
matlab曲线拟合与矩阵计算 Matlab应用重点(1)曲线拟合 曲线拟合定义 在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点.针对 ...
- python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
- python绘制三维曲面图-Python中使用Matplotlib绘制3D图形示例
原标题:Python中使用Matplotlib绘制3D图形示例 3D图形能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的3D绘图工具.3D图形在数据分析.数据建模. ...
最新文章
- tf.nn.relu
- Python学习之路-12 (递归)
- 手机自动化测试:appium源码分析之bootstrap十二
- Android RecyclerView实现九宫格效果
- 绕开登录进行爬虫_爬虫小偏方:绕开登陆和访问频率控制
- Skype For Business Server 2015 离线消息
- 2017.9.9 堵塞的交通 思考记录
- WPF | 控制库| MultiSelectCombobox
- 采用Locust对grpc协议进行压测
- win11无法下载steam怎么办 Windows11无法下载steam的解决教程
- VUE中使用lib-flexible和 px2rem-loader
- 为什么找不到解决方案?--答案就是:转个弯 这里以“解决表示图左边缺失线条、边缘线、分割线问题”为例...
- oracle比较日期大小函数输出,oracle 日期比较及惯用函数
- 诺顿误杀导致系统崩溃--起因及对策
- 电脑主板报警声音的故障现象对照表
- 抖音短视频如何去水印
- 关于2022年国外广告联盟emu还能做吗?还赚钱不
- 【FICO】标准成本、计划成本、实际成本、目标成本
- 百钱买百鸡,3文钱一只公鸡,2文钱一只母鸡,1文钱可以买3个小鸡,要求用100文钱买100只鸡
- 网站如何做seo优化
热门文章
- 初探Linux内核态——通过proc文件系统作快速问题定位
- Java的GUI学习四(事件监听机制)
- 51Nod - 1086 (多重背包+2进制优化)
- deque(双向队列)
- 云计算 码率适配限速_5G 成熟后,带宽足够且云计算力够大,会不会对 PC 的升级需求放缓?...
- ICRA2021会议-----SLAM方向汇总
- 用VScode写html文件以及调用浏览器运行
- java 中使用_java中运算符的使用方法
- java为什么序列化_什么是Java序列化、为什么要序列化、JAVA序列化有哪些方式(性能由低至高)...
- python 灰度图像素灰度值求和_如何在python中更改灰度图像中特定类型的像素值?...