substitute every n elements of a vector
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Stephen23
2015-8-31
编辑:Stephen23
2015-8-31
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
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!