Octave中向量转矩阵

6

Octave中与vec相反的操作是什么?

例如,如果我需要将12x1向量转换为3x4矩阵,我该怎么做?

1个回答

14

我不了解Octave,但我认为你正在寻找reshape函数。

— 内置函数:reshapeA,m,n...
— 内置函数:reshapeA,[m n ...]
— 内置函数:reshapeA,...,[],...)
— 内置函数:reshapeA,size

返回一个指定维度(m, n, ...)且元素来自矩阵A的矩阵。访问矩阵的元素是以列主序(就像Fortran数组存储一样)进行的。

以下代码演示了如何将1x4行向量重塑为2x2正方形矩阵。

      reshape ([1, 2, 3, 4], 2, 2)
           ⇒  1  3
               2  4

注意原矩阵中的元素总数 (prod(size(A))) 必须与新矩阵中的元素总数 (prod([m n ...])) 相匹配。

返回矩阵的单个维度可以不指定大小,Octave 会自动确定其大小。使用空矩阵 ([]) 来标志未指定的维度。


1
矩阵的元素按列主序访问(与Fortran数组存储方式相同)。如果我需要将值按行主序排列怎么办? - Andre
@Andre:首先按列主序排列它们,然后转置矩阵(使用后缀运算符“.'”)。您无法在不复制数据的情况下执行此操作。 - Cris Luengo
@Andre 这在Matlab中可行,在Octave中也应该可行。 - winkmal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接