使用下标创建

习惯的,将二维数组的第一维称为行,第二维称为列,对于三维数组的第三维称为页。三维以及三维以上的数组称为高维数组,由于高维数组比较抽样,这里主要以三维数组为例介绍如何创建高维数组。%显示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之三(高)维数组的创建相关推荐

  1. 减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现

    文章目录 基本介绍 应用实例 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: ①记录数组一共有几行几列,有多少个不同的值(0除外) ...

  2. php怎么用递归函数遍历多维数组,php递归遍历多维数组的方法

    php递归遍历多维数组的方法 本文实例讲述了php递归遍历多维数组的方法.分享给大家供大家参考.具体如下: function get_array_elems($arrResult, $where=&q ...

  3. C 二维数组,以及自定义二维数组

    C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...

  4. Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...

  5. 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所指一维数组中.二维数组中的数己在主函数中赋予. ...

  6. 数组--如何通过【二维数组+稀疏数组】实现五子棋盘,并且保存记忆功能?

    一.应用场景 通过Java + 二维数组 + 稀疏数组实现一个五子棋盘功能,并且具有保存记忆功能. 二.实现原理 2.1 二维数组 大家都知道一维数组,不过一维数组的属于线性结构,而二维数组则属于非线 ...

  7. 【C语言数组】一、二维数组冒泡排序

    目录 1. 一维数组的创建和初始化 1.1 一维数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 ...

  8. java二维数组初始化值_Java二维数组初始化的方法

    对于一个新使用的工具,我们会进行初步的初始化工具,目的是为了加上一些使用的配置.在学过了一维数组后,那么二维数组是加了一层维度的一维数组.在初始化方面,二维数组有三种方法,相信很多人只是掌握了其中的一 ...

  9. c语言二维数组作用,C语言二维数组知识点介绍

    C语言二维数组知识点介绍 数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本 ...

最新文章

  1. 操作系统实验之作业调度算法
  2. jquery selector 基础
  3. 全球及中国航空发动机市场动态前景及十四五项目专项调研报告2021-2027年版
  4. python开源库生成式对抗网络_Python:使用Tensorflow开发一维生成对抗网络
  5. 关于Servlet和异步Servlet
  6. Ninject依赖注入(一)
  7. android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...
  8. 人形机器人正在美国史密森尼博物馆中担任导游的工作
  9. react前端显示图片_如何在react项目中引用图片?
  10. π型滤波频率计算_一文看懂π型滤波电路原理
  11. KHV0031-himall3.0商城异常类(一)
  12. python职业发展规划-少走弯路,一个老程序猿谈PHP职业发展规划
  13. 【科研分享】推荐系统SCI顶会及顶级期刊 更新于2022-07-13
  14. 递归与自我指涉标识牌Top 5
  15. EasyNVR对接EasyCloud视频云平台进行云端录像
  16. 基于15单片机通过ESP8266实现远程浇花系统(支持天猫精灵和小爱同学)
  17. MVC母版页的使用方法
  18. 如何设计一个项目的数据库
  19. 信息爆炸,用写作让它慢下来-2023.04.07
  20. html属性 id去重,JS相关知识点总结

热门文章

  1. 计划策略-40-最终装配计划
  2. 关于程序变式中动态选择的一点说明
  3. me21n增强BADI:ME_PROCESS_PO_CUST之process_account
  4. 这款国产BI我推荐了:Tableau+SPSS+python的综合集成
  5. 打车APP大数据宰客套路多:苹果比安卓贵、熟客比新客贵
  6. 拦截器 java_在Java后端如何添加拦截器
  7. 7 centos 源码安装samba_Centos-7安装zabbix
  8. data:image/png;base64,, CTF杂项base64图片隐写-河南省第二届金盾信安杯
  9. Python中for else注意事项
  10. python 实现ping测试延迟的两种方法