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

1 view (last 30 days)
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 Comments
Jan
Jan on 14 Jun 2022
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 on 14 Jun 2022
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 ]

Sign in to comment.

Accepted Answer

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

More Answers (0)

Categories

Find more on Structures in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!