MATLAB 以及numpy工具包中的reshape函数用法总结

本文总结了MATLAB和numpy中的reshape函数用法。在MATLAB中,reshape用于将数组重构为矩阵,例如将10元素数组变为2行5列矩阵,或4*4矩阵重构成2行矩阵。而在numpy中,reshape函数可以不改变数据而改变数组形状,当某维度未知时,可使用-1,系统会自动计算该维度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MATLAB中reshape函数的使用方法

  • 将数组重构为矩阵

将一个大小为10的数组重构为一个2行5列的矩阵

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

B =

 1     3     5     7     9
 2     4     6     8    10
  • 将矩阵重构为具有指定行数或列数的矩阵

将一个4*4的矩阵重构成一个2行的矩阵,列数这里我们用[]代替,matlab会帮我们自动计算

>>A = [1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]%四行四列的矩阵
>>B = reshape(A,2,[])

A =

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

B =

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

需要注意的是这里的重构的顺序是按来的,即从第一列开始往下数,然后新的矩阵也是从第一列往下排,再从上往下填充下一列,直到填满

numpy中reshape函数的使用

numpy.reshape:函数功能:给予数组一个新的形状,而不改变它的数据,新的数组的元素个数应该和原来的数组要相等,如果哪一维的维数不确定,填上-1函数会根据其他已知维的维数自动计算。

reshape(a,newshape,order = 'C')
'''
parameters

a:	需要被reshape的数组

newshape:	整数值或整数元组。新的形状应该兼容于原始形状。如果是一个整数值,表示一个一维数组的长度;如果是元
组,表示新数组的行和列数,一个元素值可以为-1,此时该元素值表示为指定,此时会从数组的长度和剩余的维度中推断出

order:	可选(忽略)

返回:	一个新形状的数组
'''
import numpy as np
z = np.array([[1, 2, 3, 4],
          	  [5, 6, 7, 8],
          	  [9, 10, 11, 12],
           	  [13, 14, 15, 16]])
z1 = z.reshape((2,-1)) #这里的-1表示我们只想让行数为2,列数让函数自动计算
z2 = np.reshape(z,(-1,2))
print('z1 = '+ z1)
print('z2 = '+ z2)

输出

z1 = 
	[[ 1  2  3  4  5  6  7  8]
	 [ 9 10 11 12 13 14 15 16]]
z2 = 
	[[ 1  2]
	 [ 3  4]
	 [ 5  6]
	 [ 7  8]
	 [ 9 10]
	 [11 12]
	 [13 14]
	 [15 16]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值