주어진 코드에서 어떻게 병목 현상을 처리 할 수 있는지 알고 싶습니다. 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