How to find first instance of a value in array?
조회 수: 719(최근 30일)
표시 이전 댓글
댓글: Tawsif Mostafiz 2021년 7월 5일
Hi, I am writing a code that as follows:
arr(p)=abs(c); %absolute value of c
cor(t)=arr(p); %correlation for c>.95 && c<1
maximum=max(cor); %maximum value of cor(t)
Now, I am trying to find the first instance the value of maximum comes in the "arr" Array.
I have tried the following:
if(u==1) %making sure only the first max value is taken
q=value(v); %q is becoming always 0.5,have to fix it
x = find(maximum == arr,'first') ;
In the 1st and 2nd try, when I use fprintf to detect the x, it prints blank, such as,
"x is "
In the 3rd try the following error occurs,
Second argument must be a positive scalar integer.
How can I fix it?
Steven Lord 2021년 7월 4일
You could use logical indexing.
c = randn(1, 10)
arr = abs(c)
% Overwrite those values in arr that are out of bounds with NaN. I'm using
% wider bounds to show the technique with a small data set.
arr(arr > 1.5) = NaN
arr(arr < 0.5) = NaN
[value, location] = max(arr, , 'omitnan')
If all you're interested in is the value and not its location in c you could delete the elements of arr that fall out of bounds.
arr2 = abs(c);
arr2(arr2 > 1.5) = ;
arr2(arr2 < 0.5) = 
[value2, location2] = max(arr2)
location2 is not the same as location because arr2 does not have the same number of elements as either arr or c.
댓글 수: 1
Jiro Doke 2021년 7월 4일
Is this what you're looking for?
maximum = 5;
arr = [2 4 3 5 7 3 4];
find(arr == maximum, 1)
댓글 수: 1
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!