【MATLAB】改变矩阵的形状

MATLAB提供了reshape()函数。

reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成mxn的二维矩阵。

注意:reshape()函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。

例1:

>> x=[23,45,65,34,65,34,98,45,
### MATLAB 矩阵 `reshape` 变换形状MATLAB 中,`reshape` 函数用于改变数组的大小而不更改其数据。此函数允许用户定义新的维度,只要新维度中的元素总数与原数组相匹配即可。 #### 基本语法 要将矩阵 A 改变为 m 行 n 列的新矩阵 B,可使用如下命令: ```matlab B = reshape(A, m, n); ``` 这里需要注意的是,A 的总元素数量必须能够整除为 m*n 形式的网格布局[^2]。 当仅需指定部分尺寸而让另一些自动调整时,可以用方括号内的空方括号 `[]` 来代替未知数的位置,MATLAB 会自行计算其余所需的维数值以保持总体积不变: ```matlab % 让列数自适应变化 C = reshape(A, size_of_A_row, []); ``` 对于多于二维的情况,同样适用上述逻辑,只需提供额外参数给 `reshape()` 即可获得更高阶张量结构。 下面给出具体例子展示如何操作: 假设有一个 3x4 的随机浮点数矩阵 A, ```matlab A = rand(3, 4); disp('原始矩阵:'); disp(A); ``` 现在尝试将其重构成一个单行向量形式(即一维数组),此时可以省略其中一个参数并用 `[]` 替代让它自己决定合适的宽度: ```matlab vectorized_A = reshape(A, [], 1); disp('转置后的行向量:'); disp(vectorized_A'); ``` 另外还可以把它变成其他任意符合条件的矩形分布比如 6x2 或者 2x6 : ```matlab reshaped_to_6_by_2 = reshape(A, 6, 2); disp('变换成 6x2 矩阵:'); disp(reshaped_to_6_by_2 ); reshaped_to_2_by_6 = reshape(A, 2, []); disp('变换成 2x6 矩阵:'); disp(reshaped_to_2_by_6 ); ``` 以上就是关于 MATLAB 下利用 `reshape` 实现矩阵变形的一些基本介绍和实例说明[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-_星耀_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值