【发布时间】:2014-12-25 10:28:08
【问题描述】:
我想将二维矩阵简化为行向量。
但是在大型矩阵中使用reshape 确实很慢。另一种选择是使用colon,但我希望矩阵的转置是冒号而不是矩阵本身。
例如
A=magic(3)
A =
8 1 6
3 5 7
4 9 2
A(:) 将所有列一一堆叠。但我正在寻找这样的东西:
AA=A(2:3,:)';
然后重新整形或冒号 AA 而不是 A。
问题是我不想定义像AA 这样的额外变量。
在没有reshape的情况下,有没有办法减少二维矩阵的维数?
【问题讨论】:
-
那么为什么不直接使用
A(2:3,:)'(或A(2:end,:).')而不将其分配给变量呢? -
我怀疑不是
reshape需要时间,而是需要将重塑后的矩阵复制到不同的内存位置。 -
@LuisMendo,我猜是因为 OP 最终希望它作为一维数组。
-
@A.Donda 知道了。谢谢
标签: matlab matrix reshape colon