Я хотел бы знать, как можно обработать узкое место в данном фрагменте кода.Эффективный метод поиска элементов в матрице MATLAB
%% Points is an Nx3 matrix having the coordinates of N points where N ~ 10^6
Z = points(:,3)
listZ = (Z >= a & Z < b); % Bottleneck
np = sum(listZ); % For later usage
slice = points(listZ,:);
В настоящее время для N ~ 10^6
, np ~ 1000
и number of calls to this part of code = 1000
, утверждение узкого места занимает около 10 секунд, в общей сложности, который представляет собой большой кусок времени по сравнению с остальной частью моего кода.
Некоторые больше скриншотов кода образца для только заявления индексации в соответствии с просьбой @EitanT
Вы уверены, что это узкое место (можете ли вы показать результаты профилирования)? А что такое 'num_calls'? –
@EitanT Да, я проверил его через профилировщик MATLAB, и это утверждение действительно является узким местом – OrangeRind
@EitanT Я добавил результат профилирования – OrangeRind