MATLAB: Find value in a matrix

MATLABmatrix array value loop for ismember

Hello! I wanted to check if a value exists inside a matrix without the use of a loop. To be more spesific I have a matrix, D, which is 50×50 and I want to check if a variable A, is in D. I used ismember(A,D) but it doesn't work. This function works only if D is an array? What can I do to look through a matrix without a loop? Thank you in advance.

Best Answer

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)