How to find single index values in a matrix?

25 views (last 30 days)
B1 = [2 4 6 8; 10 12 14 16; 18 20 22 24; 26 28 30 32]
idx_8=find(B1==8)
[row,column]=find(B1~=8)
RowColumn = [row:column]
Find the single index values for 26, 4, and 28?
How is a matrix indexed with single indexing values?
  3 Comments
Dalton Houghton-Schaffer
Dalton Houghton-Schaffer on 9 Sep 2019
Is that the code to find single index values? And do I insert anything to the matrix [was_found]?
Walter Roberson
Walter Roberson on 9 Sep 2019
[was_found, idx] = ismember([26 4 28], B1);
will assign to two variables: was_found and idx. was_found will be true for each element of [26 4 28] that was located somewhere in B1, and will be false for any element that was not found in B1. idx will be 0 for any element that was not found, and otherwise will be the index of the "first" location of the value in B1. idx will be a "linear index"

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 9 Sep 2019
Edited: madhan ravi on 9 Sep 2019
Linear_indices = find(ismember(B1,[26 4 28])); % you mean linear indices by saying single indices
B1(Linear_indices) % would give [26 4 28]
  5 Comments
madhan ravi
madhan ravi on 9 Sep 2019
Ok so don't expect me to delete my answer though.
Bruno Luong
Bruno Luong on 9 Sep 2019
Edited: Bruno Luong on 9 Sep 2019
No IMO you should keep it. The difference is interesting to highlight.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 9 Sep 2019
[was_found, idx] = ismember([26 4 28], B1);
will assign to two variables: was_found and idx. was_found will be true for each element of [26 4 28] that was located somewhere in B1, and will be false for any element that was not found in B1. idx will be 0 for any element that was not found, and otherwise will be the index of the "first" location of the value in B1. idx will be a "linear index"

Tags

Community Treasure Hunt

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

Start Hunting!