MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

这篇具有很好参考价值的文章主要介绍了MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 在MATLAB中初始化二维矩阵

在MATLAB中初始化一个二维矩阵是很容易的,我们既可以直接把矩阵的元素值写出,比如下面这样:

A = [1 2 3 4;...
     5 6 7 8;...
     9 10 11 12];

matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
也可以直接用函数ones()、zeros()、rand()等函数初始化一个全1或全0或均匀随机分布等的矩阵,然后再对其中的元素进行访问赋值,比如下面这样:

B = zeros(3,4);
B(1,1)=1;
B(1,2)=2;
B(1,3)=3;
B(1,4)=4;

matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
从上面的示例中我们可以看出,第一个索引代表行,第二个索引代表列。

2 在MATLAB中初始化三维矩阵

我们先试一下可不可以直接用元素值初始化一个三维矩阵。
假设我们要初始化一个两通道、三行、四列的三维矩阵,看下下面这个代码行不行。

C=[[11 12 13 14;15 16 17 18;19 20 21 22];...
   [23 24 25 26;27 28 29 30;31 32 33 34]];

运行结果如下:
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
可见,没有得到我们想要的三维矩阵,这样的写法得到的是两个矩阵合并后的结果。

通常,我们初始化一个三维矩阵,都是用ones()、zeros()等这些函数进行。
比如我们刚才想要得到的两通道、三行、四列的三维矩阵可以像下面这样初始化。

D = zeros(3,4,2);

运行结果如下图所示:
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
从上面的运行结果可以看出,在MATLAB中,矩阵的维度顺序是:第一个索引为行索引,第二个索引为列索引,第三个索引为通道索引(也称为页索引)。
在Python中,用OpenCV的函数imread()读取的图像数据的维度顺序与其ndarray的常规矩阵的维度顺序是不一样的,详情见:https://blog.csdn.net/wenhao_ir/article/details/124422709
所以这里我们测试下MATLAB的图像处理函数imread()读取到的图像数据的维度顺序是不是第一个索引为行索引,第二个索引为列索引,第三个索引为通道索引。
测试代码如下:

img1 = imread('F:\material\images\P0022-view-06.jpg');

运行结果如下:
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
从这个运行结果中可以看出,MATLAB的图像处理函数imread()读取到的图像数据的维度顺序与其常规矩阵的维度顺序是一致的,都是“第一个索引为行索引,第二个索引为列索引,第三个索引为通道索引(也称为页索引)”

3 在MATLAB中初始化四维矩阵

这个与三维的方法一样,就是用ones()、zeros()等函数进行,比如下面的语句可创建四维矩阵。

F = zeros(2,3,4,5);

运行结果如下:
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
从上面的运行结果我们可以看出,维度顺序为:第一个索引代表行,第二个索引代表列,第三个索引代表第三维度,第四个索引代表第四维度。
我们进行赋值操作看是不是这样:

F = zeros(2,3,4,5);
F(1,1,4,5)=5;

运行结果如下:
matlab 三维矩阵,MATLAB基础,MATLAB多维矩阵初始化
可见,这个维度索引顺序就是如我们上面所述的,第一个索引代表行,第二个索引代表列,第三个索引代表第三维度,第四个索引代表第四维度。

4 在MATLAB中初始化N维矩阵

都会初始化三维矩阵和四维矩阵了,还不会初始化N维矩阵么?文章来源地址https://www.toymoban.com/news/detail-795986.html

到了这里,关于MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VMWare 虚拟机创建 + 初始化

    目录 概述 1. VMware创建虚拟机 2. IP 配置 nmtui nmcli 3. Yum 源配置 光盘的Packages作为Yum源 配置开机自动挂载(光盘) 配置私有Yum仓库 跟新私有yum仓库  报错和修复 4. 文件共享系统配置 跟新配置文件/etc/hosts + /etc/yum.repo.d/ftp.repo  同步配置文件 测试yum私有仓库 5. Ansible 安装配置  s

    2024年02月05日
    浏览(29)
  • 分享用 vector的vector实现一个二维数组并初始化的逆置矩阵问题

    目录 题目名称 867.转置矩阵 1.题目 2.题目分析 3.题目知识点 3.1vector的构造函数 3.2vector构造二维数组 最后💐 推荐阅读顺序: 1.题目-2.题目分析-3.题目知识点 如果矩阵 matrix为 m 行 n列,则转置后的矩阵 matrixT为 n行 m列,且对任意 0≤im和 0≤jn,都有 matrixT[j][i]=matrix[i][j] 创建一个

    2024年01月17日
    浏览(45)
  • Matlab和Python的初始化内存开销

    Matlab矩阵初始化: A=zeros(10000,10000); A=zeros(20000,20000); A=zeros(30000,30000); 错误使用 zeros 请求的 30000x30000 (6.7GB)数组超过预设的最大数组大小。创建大于此限制的数组可能需要较长时间,并且会导致 MATLAB 无响应。有关详细信息,请参阅 array size limit 或预设面板。 维数为30000及以上

    2024年02月05日
    浏览(32)
  • 如何创建 Xilinx BRAM 或 ROM 初始化文件(.COE)并实现初始化数据在 FPGA 上的载入

    如何创建 Xilinx BRAM 或 ROM 初始化文件(.COE)并实现初始化数据在 FPGA 上的载入 在 FPGA 开发中,初始化数据是一个非常重要的内容,它决定了电路从上电开始的初始状态,对于保证正确性和可靠性有着至关重要的作用。其中,BRAM(Block RAM)和 ROM(Read-Only Memory)是两种常见的

    2024年02月09日
    浏览(30)
  • MATLAB初始化种群-随机和一定的实数序列

    在智能算法的编码场景中,很多时候是需要用求和为一定的编码的, 比如分配问题, 配送问题等, 下面给出具体程序代码: clc;close all;clear all;warning off;%清除变量 rand(\\\'seed\\\', 100); randn(\\\'seed\\\', 100); format long g; N=5; % 设定优化问题维数 lb=0*ones(1,N);% 自变量上限 ub=1*ones(1,N);% 自变量下限

    2024年01月23日
    浏览(40)
  • Spring初始化顺序- RabbitMq 无法自动创建队列

    项目中使用了RabbitMq, 并配置了自动创建topic, exchange,binding 等,但是通过测试发现,有一个队列始终无法自动创建,在对spring 源码以及rabbitmq 源码debug 后发现问题。 rabbitmq 配置了两套环境 , 以下为代码示例 Queue, Exchange, Binding 自动生成配置: 通过运行项目,发现队列,交换机

    2024年02月13日
    浏览(34)
  • 【源码解析】聊聊SpringBean是如何初始化和创建

    我们知道通过类进行修复不同的属性,比如单例、原型等,而具体的流程是怎么样的呢,这一篇我们开始从源码的视角分析以下。 在刷新容器中有一个方法,其实就是 Bean创建的过程。 而BeanFactory中 preInstantiateSingletons是初始化所有的bean对象的核心流程。 而这里通过去遍历所

    2024年02月05日
    浏览(32)
  • Java创建数组、赋值的四种方式,声明+创建+初始化 详解

    以int数据类型为例 注意: new 数据类型[]{},其中花括号可以省去,但要在[ ]中填写数组的个数; 创建多维数组时 new后面第一个方括号中的元素数量不能省略 1、一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 推荐使用第一种格式,因为第一种格式具有更好的可读性,表

    2024年04月11日
    浏览(45)
  • 第3章 创建项目并初始化业务数据(过程记录)

    公用的声明、依赖、插件 properties 声明 log4g :处理日志的框架(日志的具体实现) sel4g :简单日志门面(简单日志的接口) mongodb-spark :MongoDB和Spark的接口 casbah :MongoDB在scala上的Driver(最新的有MongoScalaDriver) redis、kafka、spark、scala jblas:java线性代数库(矩阵运算) depen

    2024年02月13日
    浏览(31)
  • Git第二讲 使用Git命令创建和初始化仓库

    在使用Git之前,您需要创建并初始化一个Git仓库。这个仓库将用于存储您的项目文件并跟踪其版本。 首先,让我们创建一个全新的Git仓库。请按照以下步骤进行操作: 打开命令行终端或Git Bash,并导航到您想要存储项目的目录。 运行以下命令来初始化一个新的Git仓库: 这将

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包