How to duplicate some values in vector , while each value is duplicate in different number of times?

3 次查看(过去 30 天)
I have a 1*48 row vector: [1 0 2 0 3 0 2 0 3 0 3.....] i want to get a 1*168 vec in a way that duplicate (1,2,3 ) four times each number and 0 is duplicate three times, and keep the order like this without changing,
Trialsorder =[1,3,1,2,3,2,1,1,1,3,2,1,3,3,1,2,1,2,3,2,2,3,3,2];
Trialsorder_temp=upsample(Trialsorder,2);
thanks you
  2 个评论
Jan
Jan 2022-6-14
I do not understand the procedure. What does "duplicate (1,2,3 ) four times each number and 0 is duplicate three times" mean?
Please post a short input and output example.
Kesem Ester Ozen
Kesem Ester Ozen 2022-6-14
if the vector is a=[1 0 2 0 3 0 3 0];
then i will like to get a vector like this:
>> [ 1 1 1 1 0 0 0 2 2 2 2 0 0 0 3 3 3 3 0 0 0 3 3 3 3 0 0 0 ]

请先登录,再进行评论。

采纳的回答

David Hill
David Hill 2022-6-14
a=[1 0 2 0 3 0 3 0];
d=4*(a>0)+3*(a==0);
n=repelem(a,d);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by