gpt4 book ai didi

matlab - 以独特的方式平铺向量 MATLAB

转载 作者:行者123 更新时间:2023-12-02 07:34:41 24 4
gpt4 key购买 nike

考虑 A = [ 200000 x 1] 向量。我有另一个向量idx = [200000x1]。我想平铺A,使得A的每个ith<​​元素都平铺idx(i)次。

例如:

A   idx output 
2 2 2
3 1 2
4 3 3
5 1 4
. . 4
. . 4
. . 5
. . .

有什么非循环的想法吗?

最佳答案

您似乎正在寻找 run length decoding :即 idx(ii) 表示长度 A(ii) 应出现在编码输出中。

这是在 Matlab 中执行此操作的好方法:

output = zeros(1, sum(idx)); % allocate output
output( cumsum( [1 idx(1:end-1)] ) ) = 1;
output = A( cumsum( output ) );

output =

2 2 3 4 4 4 5

关于matlab - 以独特的方式平铺向量 MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24503014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com