matlab code to make values of an array in specific ranges(index positions) equal to zero

2 次查看(过去 30 天)
matlab code to make values of an array in specific ranges equal to zero
ex:
d=[1 2 3 4 5 6 7 8 9 10 11 12 13]
start_index_positions=[2 6 10]
end_index_positions=[4 8 12]
output:
d=[1 0 0 0 5 0 0 0 9 0 0 0 13]

回答(2 个)

James Tursa
James Tursa 2016-11-28
for k=1:numel(start_index_positions)
d(start_index_positions(k):end_index_positions(k)) = 0;
end

Elias Gule
Elias Gule 2016-11-29
Hi, I hope this is want you want.
d=[1 2 3 4 5 6 7 8 9 10 11 12 13];
start_index_positions=[2 6 10];
end_index_positions=[4 8 12];
ranges = arrayfun(@(x,y) x:y,start_index_positions,end_index_positions,'UniformOutput',false);
d([ranges{:}]) = 0;

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by