substitute every n elements of a vector
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
simone clochiatti
il 30 Ago 2015
Risposto: Szilárd Ecsenyi
il 22 Lug 2021
Hi, I have a vector lets say 24 elements (zeros), and I want to substitute a vector of ones (lets say in this example a vector of two ones) n times (lets say 4 times in this example) starting from an index of the original vector decided by me, examples:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (original vector)
1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 (here substituted 4 times a vector of 2 ones starting form index 1)
0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 (here substituted 4 times a vector of 2 ones starting form index 3)
Is it possible to do simply something like this (possibly without a for)? just having the vector and deciding how many times substitute it, and the index to start? Thank you so much.
0 Commenti
Risposta accettata
Stephen23
il 31 Ago 2015
Modificato: Stephen23
il 31 Ago 2015
It may be that using a loop is actually faster than other solutions, and less obfuscated:
num = 3; % start index
stp = 6; % step size
vec = [1,2,3]; % vector
out = zeros(1,24)
for k = 1:numel(vec)
out(num+k-1:stp:end) = vec(k);
end
out
Displays this in the command window:
>> temp
out =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
out =
0 0 1 2 3 0 0 0 1 2 3 0 0 0 1 2 3 0 0 0 1 2 3 0
Più risposte (1)
Szilárd Ecsenyi
il 22 Lug 2021
more faster:
v = 0:1:23;
v(rem(fix(v/3),2) == 0) = 0;
v(v~=0) = 1;
0 Commenti
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!