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 中查找有关 Programming 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by