我有一个列向量A.
我想将A重新排序为一个新的列向量B,它应按如下方式组织,每个第12个元素:
[元素1,13,25 ......然后2,14,26,......,3,15,27等等]
我可以使用以下代码开始
B = A(1:12:length(A))
我可以继续这样做并附加到B.然而,我怀疑有更好的方法可以做到这一点,而不必重复十二次代码。
答案 0 :(得分:1)
扩展戴维斯评论(这提供了一个很好的建议,但有点模糊)。您可以使用重塑来创建矩阵,其中行具有您想要的形状[1,13,15, ...; 2,14,26, ...; ...]
。然后,您可以转置矩阵并使用重新整形重建它。这个例子的规模略小,长度为24的矢量和更短的排列[1,9,17,2,10,18, ...]
(步长为8)。
a = 1:24
q = reshape(a,8,3)
r = q.'
b = reshape(r,1,24)
请注意,如果向量中的元素数量不是M * N,则可能需要用零填充。
按照示例,您还将向您展示Matlab按列工作,这可能是您将在这里学到的最重要的事情。利用这些知识,您将来可以编写更有效的Matlab代码。