How to find first instance of a value in array?
895 views (last 30 days)
Show older comments
Commented: Tawsif Mostafiz on 5 Jul 2021
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 on 4 Jul 2021
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.
More Answers (2)
Jiro Doke on 4 Jul 2021
Is this what you're looking for?
maximum = 5;
arr = [2 4 3 5 7 3 4];
find(arr == maximum, 1)
madhan ravi on 4 Jul 2021
help find % read the third explanation
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!