Efficiently find a value in a matrix

조회 수: 1 (최근 30일)
John Gilmore
John Gilmore 2021년 3월 26일
댓글: John Gilmore 2021년 3월 29일
Hey all,
So I have a simple 1D matrix that I'm trying to find a specific value in. I know of a way to do it, but my main question is if anyone knows of a more effcient way? As of current, I'm using as part of an operation that occurs on the order of millions or even billions of times, and using the matlab profiler it's told me that this is far and beyond the most inefficient part of the whole process.
This is how I currently do it...the third line take up ~60% of my run time
DummyData = [1,3,5,7,9];
ValueToFind = 3;
[~,Index] = min(abs(DummyDaya - ValueToFind));
  댓글 수: 2
Stephen23
Stephen23 2021년 3월 26일
If you want to "find a specific value" why are you using code that just finds the closest value?
John Gilmore
John Gilmore 2021년 3월 29일
Ah yes, sorry, I should have been a bit more clear. This is doing what I want, particularly that's finding a specific value if it exists in the matrix. If it doesn't exist, then it finds the closest one.

댓글을 달려면 로그인하십시오.

채택된 답변

weikang zhao
weikang zhao 2021년 3월 27일
From the perspective of computational complexity, your code can no longer be optimized. You can seek help from GPU acceleration or parallel computing.
  댓글 수: 1
John Gilmore
John Gilmore 2021년 3월 29일
Yeah, that's sort of what I was unfortunately figuring. I guess I was wondering if anyone knew of more effcient built in functions, or maybe the built in functions have some bloat to them to make them more robust and someone knew of a smarter way to achieve the same result without using built-in functions.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by