# Find value in a matrix

118 views (last 30 days)

Show older comments

Zenia Askar
on 9 Jan 2020

Commented: Edvin Sandulf
on 28 Sep 2021

##### 2 Comments

Adam Danz
on 9 Jan 2020

I second the ismembertol() suggestion.

A lower-level approach would be to simply subtract the value from each element of the matrix and look if any of the results are very close to zero.

% M is the matrix

% v is the scalar value

[row,col] = find(abs(M-v) < 0.000001)

row and col will be empty if there are no "matches". Otherwise they will contain the row and column numbers of all "matches".

### Accepted Answer

James Browne
on 10 Jan 2020

Why not use a loop? You can create one with very little code and you can easily modify it to do whatever you want. For example, I wrote the following code, which not only searches for a value in a matrix, D, of arbitrary size and sets a boolean variable to TRUE, if the value os found in D, but also reports the number of times it is found. You can also add lots of things, easily, such as a tolerence range or something...

%Create a 50x50 matrix of random integers between 1 and 10

D = randi(10,50);

%Determine the dimensions of the matrix D

NRows = size(D,1);

NCols = size(D,2);

%Value to be searched for in the matrix D

CompareValue = 5;

%Variable which indicates whether or not "CompareValue" was found in the

%matrix D

ValueFound = false;

%Number of times that CompareValue was found in the matrix D

NumTimesFound = 0;

%Search the matrix D to see if the value in "CompareValue" is present

for i = 1:NRows

for j = 1:NCols

if D(i,j) == CompareValue

ValueFound = true;

NumTimesFound = NumTimesFound + 1;

end

end

end

fprintf('The value %4.2f was found in the matrix D %i times', CompareValue, NumTimesFound)

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!