matlab 高维数组赋值,MATLAB之三(高)维数组的创建
使用下标创建
习惯的,将二维数组的第一维称为行,第二维称为列,对于三维数组的第三维称为页。三维以及三维以上的数组称为高维数组,由于高维数组比较抽样,这里主要以三维数组为例介绍如何创建高维数组。%显示A,将以一页一页的方式显示
>> A(2,2,2) = 1
A(:,:,1) =
0 0
0 0
A(:,:,2) =
0 0
0 1for m = 1 : 2
for l = 1 : 2
for n = 1 : 2
A(m,l,n) = m + l + n; %这个三维数组的每个元素的值设为它所在的行数+列数+页数
end
end
end
>> A
A(:,:,1) =
3 4
4 5
A(:,:,2) =
4 5
5 6
用低维数组创建高维数组
这个方法的思想是把三维数组看做是很多二维数组组成的,每个二维数组可以看做是三维数组的一页,所以用低维数组创建高维数组要保证每个数组的规模相同,这样才可以合并,具体如下:A = [1 2 3;4 5 6;7 8 9]; %A是一个三行三列的数组
B(:,:,1) = A; %B是一个三维数组,让A为B的第一页
B(:,:,2) = 2 * A; %2 * A为B的第二页
B(:,:,3) = 3 * A; %3 * A为B的第三页
%由于A,2*A,3*A的规模都是3*3的数组,所以可以合并成三维数组
B %显示B
B(:,:,1) =
1 2 3
4 5 6
7 8 9
B(:,:,2) =
2 4 6
8 10 12
14 16 18
B(:,:,3) =
3 6 9
12 15 18
21 24 27
用函数创建三维数组
cat函数
之前介绍过的cat函数就可以,如下cat(dim, A1, A2, A3, ...)当dim = 1时,为行方向上连接,所以要保证矩阵的列数相同
当dim = 2时,为列方向上连接,所以要保证矩阵的行数相同
当dim = 3时,为页方向上连接,所以要保证矩阵的规模相同
还有两个函数与cat相似,一个叫horzcat(A1, A2, A3, ...),是将矩阵在水平方向上拼接(即列方向上),所以这个函数以cat(2, A1, A2, A3, ...)的效果是一样的,另一个是vercat(A1, A2, A3, ...),是将矩阵在垂直方向(行方向上)拼接,同理,这个函数与cat(1, A1, A2, A3, ...)的效果是一样的。>> A = [1 2 3;4 5 6;7 8 9]; %A是一个三行三列的数组
>> B = cat(3, A, 2*A, 3*A); %拼接A,2*A,3*A形成一个三维数组
>> B
B(:,:,1) =
1 2 3
4 5 6
7 8 9
B(:,:,2) =
2 4 6
8 10 12
14 16 18
B(:,:,3) =
3 6 9
12 15 18
21 24 27
repmat函数
repmat函数可以创建三维数组,repmat是repeat matrix的缩写,顾名思义就是重复矩阵,所以repmat(A,[1 2 3 ...])的意思就是以A为一个元素,重复A形成一个1行2列3页...的高维矩阵,具体用法如下:>> A = [1 2 3;4 5 6;7 8 9];
>> B = repmat(A,[2 3]); %以A为元素,形成一个2*3的数组
>> C = repmat(A,[1 2 3]); %以A为元素,形成一个1行2列3页的数组
>> A,B,C
A =
1 2 3
4 5 6
7 8 9
B =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
C(:,:,1) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
C(:,:,2) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
C(:,:,3) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
reshape函数
reshape()函数是将矩阵变量,只要变形后的矩阵元素个数与原矩阵元素个数相同,可以变为任一维的矩阵,所以reshape()函数也可以生成高维数组。>> A = [1 2 3;4 5 6];
>> B = reshape(A,[1 2 3]); %变形为1行2列3页的三维矩阵,含有1 * 2 * 3 = 6个元素
%与A所含2 * 3 = 6个元素相同,所以可以变形
>> A,B
A =
1 2 3
4 5 6
B(:,:,1) =
1 4
B(:,:,2) =
2 5
B(:,:,3) =
3 6
特殊高维数组的创建
如同二维特殊数组的创建一样,比如产生全1数组ones函数,产生全0数组的zeros函数,以及在二维数组介绍过的一些其他的函数,其中magic函数和eyes函数不能创建高维数组。>> A = ones(2,3,2); %创建2行3列2页的全1数组
>> B = zeros(3,2,2); %创建3行2列2页的全0数组
>> C = randn(2,4,3); %创建2行4列3页服从标准正态分布的数组
>> A,B,C
A(:,:,1) =
1 1 1
1 1 1
A(:,:,2) =
1 1 1
1 1 1
B(:,:,1) =
0 0
0 0
0 0
B(:,:,2) =
0 0
0 0
0 0
C(:,:,1) =
0.5377 -2.2588 0.3188 -0.4336
1.8339 0.8622 -1.3077 0.3426
C(:,:,2) =
3.5784 -1.3499 0.7254 0.7147
2.7694 3.0349 -0.0631 -0.2050
C(:,:,3) =
-0.1241 1.4090 0.6715 0.7172
1.4897 1.4172 -1.2075 1.6302
matlab 高维数组赋值,MATLAB之三(高)维数组的创建相关推荐
- 减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现
文章目录 基本介绍 应用实例 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: ①记录数组一共有几行几列,有多少个不同的值(0除外) ...
- php怎么用递归函数遍历多维数组,php递归遍历多维数组的方法
php递归遍历多维数组的方法 本文实例讲述了php递归遍历多维数组的方法.分享给大家供大家参考.具体如下: function get_array_elems($arrResult, $where=&q ...
- C 二维数组,以及自定义二维数组
C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...
- Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...
- C语言编程>第七周 ⑧ 请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。
例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中.二维数组中的数己在主函数中赋予. ...
- 数组--如何通过【二维数组+稀疏数组】实现五子棋盘,并且保存记忆功能?
一.应用场景 通过Java + 二维数组 + 稀疏数组实现一个五子棋盘功能,并且具有保存记忆功能. 二.实现原理 2.1 二维数组 大家都知道一维数组,不过一维数组的属于线性结构,而二维数组则属于非线 ...
- 【C语言数组】一、二维数组冒泡排序
目录 1. 一维数组的创建和初始化 1.1 一维数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 ...
- java二维数组初始化值_Java二维数组初始化的方法
对于一个新使用的工具,我们会进行初步的初始化工具,目的是为了加上一些使用的配置.在学过了一维数组后,那么二维数组是加了一层维度的一维数组.在初始化方面,二维数组有三种方法,相信很多人只是掌握了其中的一 ...
- c语言二维数组作用,C语言二维数组知识点介绍
C语言二维数组知识点介绍 数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本 ...
最新文章
- 操作系统实验之作业调度算法
- jquery selector 基础
- 全球及中国航空发动机市场动态前景及十四五项目专项调研报告2021-2027年版
- python开源库生成式对抗网络_Python:使用Tensorflow开发一维生成对抗网络
- 关于Servlet和异步Servlet
- Ninject依赖注入(一)
- android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...
- 人形机器人正在美国史密森尼博物馆中担任导游的工作
- react前端显示图片_如何在react项目中引用图片?
- π型滤波频率计算_一文看懂π型滤波电路原理
- KHV0031-himall3.0商城异常类(一)
- python职业发展规划-少走弯路,一个老程序猿谈PHP职业发展规划
- 【科研分享】推荐系统SCI顶会及顶级期刊 更新于2022-07-13
- 递归与自我指涉标识牌Top 5
- EasyNVR对接EasyCloud视频云平台进行云端录像
- 基于15单片机通过ESP8266实现远程浇花系统(支持天猫精灵和小爱同学)
- MVC母版页的使用方法
- 如何设计一个项目的数据库
- 信息爆炸,用写作让它慢下来-2023.04.07
- html属性 id去重,JS相关知识点总结
热门文章
- 计划策略-40-最终装配计划
- 关于程序变式中动态选择的一点说明
- me21n增强BADI:ME_PROCESS_PO_CUST之process_account
- 这款国产BI我推荐了:Tableau+SPSS+python的综合集成
- 打车APP大数据宰客套路多:苹果比安卓贵、熟客比新客贵
- 拦截器 java_在Java后端如何添加拦截器
- 7 centos 源码安装samba_Centos-7安装zabbix
- data:image/png;base64,, CTF杂项base64图片隐写-河南省第二届金盾信安杯
- Python中for else注意事项
- python 实现ping测试延迟的两种方法