MATLAB Answers

0

How to find single index values in a matrix?

Latest activity Answered by Walter Roberson
on 9 Sep 2019
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

[was_found, idx] = ismember([26 4 28], B1);
idx will be 0 in places the original was not found.
Is that the code to find single index values? And do I insert anything to the matrix [was_found]?
[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.

Tags

2 Answers

Answer by madhan ravi
on 9 Sep 2019
Edited by madhan ravi
on 9 Sep 2019
 Accepted Answer

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

Yes so Walter should post his solution as answer and would be accepted.
Ok so don't expect me to delete my answer though.
No IMO you should keep it. The difference is interesting to highlight.

Sign in to comment.


Answer by 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"

  0 Comments

Sign in to comment.