find() not as expected
Show older comments
I have a numeric 2D array called A with time in the first column (from zero to 2 minutes every 0.01 seconds). I want to find the rows that match times = 10 : 10 : 100;
When I type find(10==A(:,1), I get 1001
When I type find(20==A(:,1), I get 2001
Why when I type find(times==A(:,1) does it give these values: [1001, 12957, 24913, 36869, ...]?
These values of times (which are 10, 20, 30, ...) are at rows [1001, 2001, 3001, 4001, ...], so that's what I expected.
I know I don't really need a find() in most situations because I can use indexing, but that doesn't work either:
plot(A(A(:,1)==times,3),A(A(:,1)==times,2),'rs')
gives error msg: The logical indices in position 1 contain a true value outside of the array bounds.
because A(:,1)==times gives value of 12957 for the second index which is outside of array A bounds.
2 Comments
madhan ravi
on 13 Jul 2019
size(times) % what does these show?
size(A)
Upload your datas as .mat file
Image Analyst
on 13 Jul 2019
Are they integers or floating point?
Accepted Answer
More Answers (0)
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!