我有两个矢量来保持"开始"和"结束"我希望组合起来的位置(作为逻辑)来创建第三个向量Final
:
Starts = [0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0];
Ends = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0];
最终矢量看起来像这样:
Final = [0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0];
目前,我可以使用for
循环完成此操作,如下所示:
Start_Locations = find(Starts);
End_Locations = find(Ends);
Final = zeros(20,1);
for x=1:length(Start_Locations)
Final(Start_Locations(x):End_Locations(x),1) = 1;
end
我想知道是否有办法在没有for
循环的情况下完成同样的事情。例如,我可以通过以下"硬编码"完成我在上面概述的内容。语句:
Final([4:8,11:19],1) = 1;
具体来说,是否有办法将Start_Locations
和End_Locations
向量组合起来,以便我可以使用以下单个语句:
Final(Combined_Start_and_End_Locations,1) = 1;
完成我上面的for
循环所做的事情?我试图尽可能地学习避免for
循环,并且非常感谢任何创建Final
向量的解决方案,如上所述,而不需要求助于循环。