【问题标题】:Increment through two vectors to add parts of each to a new vector (Matlab)通过两个向量递增以将每个向量的一部分添加到新向量(Matlab)
【发布时间】:2015-05-06 01:33:20
【问题描述】:

我有两个向量 colourangle

我希望创建一个新向量F,其组成如下:

angle 的前 16 个元素,然后是 colour 的前 512 个元素,然后是 angle 的后 16 个元素,然后是 colour 的后 512 个元素等...

我尝试使用两个while 循环来实现这一点,如下所示。

colour = reshape(col,1,[]);
angle = reshape(ang,1,[]);
j = 1;
i = 1;
F = [];
while i <= 64
    F = [F angle(i:i+15)];
    i = i + 16;
    while j <= 2048
        F = [F colour(j:j+511)];
    end
    j = j + 512;
end

这不符合我的预期。谁能帮我解决这个问题?

非常感谢。

【问题讨论】:

    标签: matlab loops vector while-loop append


    【解决方案1】:

    这就是我的解决方法:

    c2=reshape(colour,16,[]);
    a2=reshape(angle,512,[]);
    merged=[c2;a2];
    merged=merged(:);
    

    使用 reshape 操作,它是 c2 的第一列,然后是 a2 的第一列,然后是 c2 的第二列等等......

    【讨论】:

    • 这也是我的第一个方法
    • 感谢您的回答!如果您在编辑之前看到我的评论,请忽略它......我犯了一个愚蠢的错误!这很好用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多