How to insert multiple element after specific numbers in a vector?
Show older comments
I have a logical vector, and i want to add elements after the 0's and after the 1's, but a different element after the 0's than the 1's. How do I do this.
Answers (1)
Here is one way
% Original logical vector input
L = logical([1 0 1 1 0]);
% The numbers to be inserted
oneNum = 6;
zeroNum = 3;
output = [L; zeroNum*ones(1,length(L))];
output(2,L==1) = oneNum;
output = output(:)'
2 Comments
Patrick Bourke
on 14 Feb 2021
If it is always the same number of repeats, then it is a straightforward extension of the above:
% Original logical vector input
L = logical([1 0 1 1 0]);
% The numbers to be inserted
oneNum = 6;
zeroNum = 3;
% Number of repetitions
repeats = 4;
output = [L; zeroNum*ones(repeats,length(L))];
output(2:end,L==1) = oneNum;
output = output(:)'
Categories
Find more on NaNs 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!