我有两个向量,它们保存“起点”和“终点”的位置(作为逻辑),我希望将它们结合起来以创建第三个向量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
andEnd_Locations
向量组合在一起,使我可以有一条语句,例如:
Final(Combined_Start_and_End_Locations,1) = 1;
完成我对上述for
循环所做的工作?我正在尝试学习for
尽可能多地避免循环,并且非常感谢能Final
如上所述创建向量而无需借助循环的任何解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句