来源:https://ww2.mathworks.cn/help/matlab/ref/reshape.html?searchHighlight=reshape&s_tid=doc_srchtitle

eshape

重构数组

全页折叠
 

说明

示例

B = reshape(A,sz) 使用大小向量 sz 重构 A 以定义 size(B)。例如,reshape(A,[2,3])A 重构为一个 2×3 矩阵。sz 必须至少包含 2 个元素,prod(sz) 必须与 numel(A) 相同。

示例

B = reshape(A,sz1,...,szN)A 重构为一个 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。可以指定 [] 的单个维度大小,以便自动计算维度大小,以使 B 中的元素数与 A 中的元素数相匹配。例如,如果 A 是一个 10×10 矩阵,则 reshape(A,2,2,[])A 的 100 个元素重构为一个 2×2×25 数组。

 

示例

全部折叠

将向量重构为矩阵

将 1×10 向量重构为 5×2 矩阵。

A = 1:10;
B = reshape(A,[5,2])
B = 5×2

     1     6
2 7
3 8
4 9
5 10
 
 

将矩阵重构为具有指定的列数

将一个 4×4 方阵重构为一个 2 列矩阵。为第一个维度指定 [] 以使 reshape 自动计算合适的行数。

A = magic(4)
A = 4×4

    16     2     3    13
5 11 10 8
9 7 6 12
4 14 15 1
B = reshape(A,[],2)
B = 8×2

    16     3
5 10
9 6
4 15
2 13
11 8
7 12
14 1

结果是一个 8×2 矩阵,它的元素数量与原始矩阵相同。B 也保持其在 A 中的列顺序。

 
 

将多维数组重构为矩阵

将由零组成的 3×2×3 数组重构为 9×2 矩阵。

A = zeros(3,2,3);
B = reshape(A,9,2)
B = 9×2

     0     0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
 
 

输入参数

全部折叠

A - 输入数组
向量 | 矩阵 | 多维数组

输入数组,指定为向量、矩阵或多维数组。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration
复数支持:

sz - 输出大小
由整数组成的行向量

输出大小,指定为由整数组成的行向量。sz 的每个元素指示 B 中对应维度的大小。必须指定 sz,以便 AB 中的元素数目相同。即,prod(sz) 必须与 numel(A) 相同。

对于第二个维度以上的维度,输出 B 不反映大小为 1 的尾部维度。例如,reshape(A,[3,2,1,1]) 生成 3×2 矩阵。

示例: reshape(A,[3,2])

示例: reshape(A,[6,4,10])

示例: reshape(A,[5,5,5,5])

sz1,...,szN - 每个维度的大小
两个或以上的整数 | [](可选)

每个维度的大小,指定为具有最多一个 [](可选)的两个或以上的整数。必须至少指定 2 个维度大小,并且最多一个维度大小可以指定为 [],这样会自动计算该维度的大小以确保 numel(B)numel(A) 相匹配。当使用 [] 自动计算维度大小时,您显式指定的维度必须均匀划分为输入矩阵 numel(A) 中的元素数目。

对于第二个维度以上的维度,输出 B 不反映大小为 1 的尾部维度。例如,reshape(A,3,2,1,1) 生成 3×2 矩阵。

示例: reshape(A,3,2)

示例: reshape(A,6,[],10)

示例: reshape(A,2,5,3,[])

示例: reshape(A,5,5,5,5)

输出参数

全部折叠

B - 重构的数组
向量 | 矩阵 | 多维数组 | 元胞数组

重构的数组,以向量、矩阵、多维数组或元胞数组的形式返回。B 中的数据类型和元素数与 A 中的数据类型和元素数相同。B 保持其在 A 中的列顺序。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration

扩展功能

tall 数组
对行数太多而无法放入内存的数组进行计算。

此函数支持 tall 数组,但存在以下限制:

  • 不支持重构 tall 维度(维度一)。第一个维度输入应始终为空,如 reshape(X,[],M,N,...)

有关详细信息,请参阅 tall 数组

C/C++ 代码生成
使用 MATLAB Coder 生成 C 代码和 C++ 代码。

用法说明和限制:

GPU 数组
通过使用 Parallel Computing Toolbox 在图形处理单元 (GPU) 上运行来加快代码执行。

此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

分布式数组
使用 Parallel Computing Toolbox 在群集的组合内存中对大型数组进行分区。

此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

另请参阅

colon | permute | repmat | shiftdim | squeeze

matlab中reshape 重构数组的更多相关文章

  1. matlab中元胞数组(cell)转换为矩阵

    matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...

  2. matlab中的字符串数组与函数调用

    1, matlab中的字符串就是1维字符数组,即如: a = 'dddssd'; b = 'lsde'; c = [a, b]; 当然也可以: c= strcat(a, b); 2, matlab中的 ...

  3. MATLAB中的结构数组

    MATLAB中的结构数组 结构数组: 结构是包含一组记录的数据类型,而记录则是存储在相应的字段中.结构的字段可以是任意一种MATLAB数据类型的变量或者对象.结构类型的变量也可以是一维的.二维的或多维 ...

  4. Matlab中reshape函数的使用

    reshape把指定的矩阵改变形状,但是元素个数不变, 例如,行向量: a = [1 2 3 4 5 6] 执行下面语句把它变成3行2列: b = reshape(a,3,2) 执行结果: b = 1 ...

  5. matlab中元胞数组的创建与内容读取

    一.创建元胞数组 1.用cell命令创建规格为2*2的空元胞 >> a=cell(2,2) a = [] [] [] [] 2.用大括号"{}"创建元胞数组并赋值 &g ...

  6. matlab中的数组与矩阵

    今天做图像处理时,看到一个矩阵的处理,简要谈谈下面几段代码: 首先是介绍矩阵(说明:在matlab中无是数组还是矩阵都是按列来存储的) 首先是一些特殊矩阵的建立 zeros(m,n)%建立全0矩阵 o ...

  7. matlab结构体、数组和单元数组类型的创建

    matlab结构体.数组和单元数组类型的创建 @ 目录 matlab结构体.数组和单元数组类型的创建 matlab结构体类型 数组类型 单元数组类型 matlab结构体类型 通过字段赋值创建结构体 创 ...

  8. 学习笔记8—MATLAB中奇异值处理办法

    一.Inf 和 NAN处理 lnf: 无穷大值,可以用islnf或者isfinite函数处理 NAN:不是一个数字,可以用isnan函数来处理 或者:  类似于这种处理 mn(find(mn<= ...

  9. 如何使用matlab中的胞元数组

    胞元数组(cell Arry)的基本组分是胞元(cell),每个胞元本身在数组中是平等的,只能以下标区分.胞元可以存放任何类型.任何大小的数组,如任意维数值数组.字符串数组.符号对象等,而且同一个胞元 ...

随机推荐

  1. vue前端获取env中的常量

    process.env.常量名   如:process.env.MIX_APP_URL

  2. TDengine能比Hadoop快10倍?

    之前对国产的时序大数据存储引擎 TDengine 感兴趣,因为号称比Hadoop快十倍,一直很好奇怎么实现的,所以最近抽空看了下白皮书和设计文档. 如果用一句话总结,就是 TDengine 是为特定的 ...

  3. Palindrome subsequence(区间dp+容斥)

    In mathematics, a subsequence is a sequence that can be derived from another sequence by deleting so ...

  4. hdu6075 2019CCPC网络选拔赛1004 path

    题意:给定一个带权有向图,有q组询问,每次询问在有向图的所有路径中,第k小的路径权值 解题思路:因为k最大只有5e4,考虑暴力搜索出前maxk小的路径并用数组记录权值,然后就可以O(1)查询. 具体实 ...

  5. linux 文件系统和磁盘

    linux 文件系统和磁盘 1.文件系统 ext2, ext3, ext4 , XFS ext3和ext4为日志文件系统 文件系统格式 : 磁盘格式化为 inode和block inode是索引,记录 ...

  6. webstorm编写vue、react 将大驼峰组件命名转换成短横杠命名

    大家好!我是木瓜太香,精通 webstorm 与常见前端技术的工程师,偶尔也在b站搞一些 webstorm 技巧教学,今天给大家带来的是大驼峰小驼峰快速转换短横杠命名或者下划线命名的方式. 开发中我们 ...

  7. Zookeeper启动流程分析

    前言 之前的Zookeeper协议篇-Paxos算法与ZAB协议通过了解Paoxs算法开始,到Zab协议的两大特性:崩溃恢复和消息广播,学习了Zookeeper是如何通过Zab协议实现高可用,本篇主要 ...

  8. 单应用模式 - Layuiadmin单页版放入TP6.0的部署方案

    thinkphp6.0.3单应用模式.layuiadmin1.4.0单页版,不需要tp的视图驱动 1. 复制 src.start 两个文件夹 2. 粘贴到 thinkphp 的 public 目录下 ...

  9. python sha256 键值对参数格式接口测试

    # coding=utf-8 import requests import time import uuid import hashlib import hmac import random impo ...

  10. conda和pip重新配置源

    conda设置源之后出现了问题,报错condaHTTPError: 之前按照网上的一些教程设置了清华源之后,过了一段时间,今天来装新的库时报了以上错误,特此记录一下. conda 源重新设置 重新去清 ...