Finding the index of elements of a vector in a mesh quite fast
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello friends,
I would like to find the index of vector of numbers A being closest in a mesh. I know how to do this but I hope you have a better idea to speed up the calculations.
An example: Consider a mesh of 10^6 regularly spaced numbers in the interval [0 10] and 10^4 random points A in this interval and we wish to find their corresponding index in our mesh (in the sense of being closest).
mesh=linspace(0,10,10^6);
A=0+(10-0).*rand(1,10000);
N=1000;
tic;
for n=1:N
ind=interp1(A,1:length(A),mesh,'nearest');
end
t=toc;
t/N
ans =
0.016923
So, on average it takes around 0.016923 seconds. I think that there should be a very smart way to do the same task with a much reduced computational time.
Any idea is greatly appreciated!
Thanks in advance,
Babak
댓글 수: 2
Torsten
2022년 6월 7일
Shouldn't it be
ind=interp1(mesh,1:length(mesh),A,'nearest');
instead of
ind=interp1(A,1:length(A),mesh,'nearest');
?
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!