例如,A = [19 20 21 22 23 24 25];
B = [2 0 3 0 0 0 2];
我们如何获得一个新数组,相应地重复B中的每个值X次?
例如,这里的答案是:[19 19 21 21 21 25 25]
。
请注意,我只允许for
循环并结合repmat
来电。
答案 0 :(得分:0)
如果您只允许使用repmat
和for
循环,则可以执行以下操作:
S = [];
for idx = 1 : length(B)
S = [S repmat(A(idx), 1, B(idx))];
end
S
最初是一个空白数组,然后与B
(或A
中的数值一样多,因为它们的长度相等),只需连接{ {1}} S
中的每个值都会被A
中的相应数字重复。 B
将包含输出。
通过运行上面的例子,我得到:
S
但是,我强烈建议您使用更多矢量化方法。我会把它留给你作为练习。
祝你好运!