problem using the find function

5 views (last 30 days)
Kobi
Kobi on 3 Feb 2014
Answered: Kobi on 4 Feb 2014
hi, i'm trying to use the find function to locate specific values form matrix array and to remove them (as you can see in the attached m-file) https://www.dropbox.com/s/bcynkiblh7n8tr5/check_values_s_ds_script.m
i use the function like this:
[row,col] = find(resault>0.899 & resault < 1);
but still i find values that are greater then 1 (some are even 50) what am i doing wrong?
  4 Comments
Kobi
Kobi on 3 Feb 2014
the colorbar shows the number 35 in red as the highest value also i can see red dots and in the matrix on those locations (columns and rows) there are number greater then 1
Azzi Abdelmalek
Azzi Abdelmalek on 3 Feb 2014
I don't know how you got those figures, but I can assure you that
row,col] = find(resault>0.899 & resault < 1)
will find only location of numbers that are between 0.899 and 1

Sign in to comment.

Accepted Answer

Kobi
Kobi on 4 Feb 2014
i found the problem i have been using find function the wrong way by changing the output to just one (index of matrix) the function give me the correct location of each and every value

More Answers (2)

Amit
Amit on 3 Feb 2014
row and col are the indices in the matrix which have the value you need. Find function just finds the indices which satisfy the condition, however find function does not replaces those values.

Azzi Abdelmalek
Azzi Abdelmalek on 3 Feb 2014
Edited: Azzi Abdelmalek on 3 Feb 2014
What you want is
resault(resault>0.899 & resault < 1)
Maybe what you mean by remove them
resault(resault>0.899 & resault < 1)=0
Removing an element doesn't mean set it to zero. Also you can't remove a element from a nxm matrix, you can remove an entire column or row.
  1 Comment
per isakson
per isakson on 4 Feb 2014
or
resault(resault>0.899 & resault < 1) = nan;

Sign in to comment.

Tags

Products

Community Treasure Hunt

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

Start Hunting!