'Find' function doesn't get me all required values
6 views (last 30 days)
Show older comments
Bianca Elena Ivanof
on 28 Apr 2016
Commented: Star Strider
on 30 Apr 2016
Hello,
I am trying to use the 'find' function in order to locate some data-points that I need to exclude (erase all (:,25)>100)
It works, in that I get back 5 rows in column 25 that are indeed problematic - yet, I've found an additional one, bigger than 100, that 'find' doesn't seem to... find (the problematic :,25 I've found by merely scrolling down the matrix is not among the aforementioned 5 rows MATLAB finds).
I can't seem to get my head around what the problem is so could you please help me with any ideas?
4 Comments
Image Analyst
on 28 Apr 2016
Edited: Image Analyst
on 28 Apr 2016
AGAIN, what is your array? Bianca, we don't have your all_operant_data, so how can we help? Type this on the command line and then paste the result back here:
probability_judgment
and also tell us the exact row numbers that you think find() should return.
Accepted Answer
Star Strider
on 28 Apr 2016
Edited: Star Strider
on 28 Apr 2016
We would have to see your code, your matrix, and a bit more detail as to what you want to do. ‘Logical indexing’ rather than using find (unless you need the actual index numbers) might be easier.
EDIT — (15:35 GMT, 2013 04 28)
When I run this:
D = load('Bianca Elena Ivanof probability_judgment.mat');
M = D.probability_judgment;
GT100 = sum(M > 100)
GE100 = sum(M >= 100)
I get:
GT100 =
5
GE100 =
256
The 5 values that seem to meet your criterion are:
111
660
7030
1575
4020
Which one isn’t on this list? I’ve not seen any evidence that MATLAB’s comparison functions are inaccurate. I doubt that floating-point approximation error could account for the discrepancy you see. Use format short g to look at your vector.
12 Comments
More Answers (0)
See Also
Categories
Find more on Logical 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!