reshape函数应用介绍(自用,来源于GPT)

在 MATLAB 中,reshape 是一个函数,用于将数组重新调整为指定的形状,而不改变数组中的数据顺序。它可以将数组的维度重新排列为用户指定的大小。


语法

B = reshape(A, sz1, sz2, ...)
B = reshape(A, [sz1, sz2, ...])
  • A:输入数组。
  • sz1, sz2, ...:新的维度大小,可以用逗号分隔或数组形式传入。
  • B:返回的数组,具有新的维度。

功能说明

  • reshape 只改变数组的形状,而不改变数据在内存中的存储顺序。
  • 新的形状必须满足元素总数与原数组一致,否则会报错。

示例

1. 基本用法

将一个 4×3 矩阵调整为 2×6 矩阵:

A = reshape(1:12, 4, 3); % 创建一个 4×3 矩阵
B = reshape(A, 2, 6); % 调整为 2×6 矩阵
disp(B);

结果:

A =
     1     5     9
     2     6    10
     3     7    11
     4     8    12

B =
   1     3     5     7     9    11
   2     4     6     8    10    12  
2. 调整为三维数组

将一个 12×1 向量调整为 3×2×2 的三维数组:

A = (1:12)';
B = reshape(A, 3, 2, 2);
disp(B);

结果:

A =
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12

B(:,:,1) =
     1     4
     2     5
     3     6

B(:,:,2) =
     7    10
     8    11
     9    12
3. 使用数组形式的尺寸
A = 1:12;
B = reshape(A, [3, 4]); % 将 A 调整为 3×4 矩阵
disp(B);

结果:

B =
     1     4     7    10
     2     5     8    11
     3     6     9    12

使用场景

  1. 数据格式转换: 在数据分析或图像处理时,常需要将数据从一维向量转换为矩阵或多维数组。

  2. 简化计算: 调整数组形状后,可以方便地进行矩阵运算或其他批量计算。

  3. 兼容性调整: 某些函数可能需要特定的输入形状,reshape 可以调整数据形状以满足要求。


注意事项

  1. 元素总数必须匹配: 新形状的元素总数必须等于原数组的总数,否则会报错。例如:

    A = 1:12;
    reshape(A, 3, 5); % 错误:元素总数不匹配
    
  2. 数据顺序不变reshape 只改变形状,不会改变数据在内存中的顺序。

  3. 多维数组的调整: 当调整为多维数组时,数据按列优先顺序填充。


与其他函数的对比

  • permute:改变数组维度的顺序,而不是形状。
  • squeeze:移除数组中的单一维度。
  • reshape:调整数组形状,但不改变数据顺序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值