How to insert multiple element after specific numbers in a vector?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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.
0 Kommentare
Antworten (1)
the cyclist
am 14 Feb. 2021
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 Kommentare
the cyclist
am 15 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(:)'
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!