# how to find position of an element in a matrix which is present in another matrix?

5 views (last 30 days)
ASHA PON on 26 Apr 2022
Commented: ASHA PON on 26 Apr 2022
I am having two matrix. Selected elements in one matrix is present as elements in another matrix. Now i need to find the position of selected elements in the original matrix.
For example:
a=[0.74 0.71 0.604 0.47 0.59 0.58 0.75];
b=[0.604 0.75];
Expected output:
c=[3 7]
I need to apply this problem to a larger n*m matrix.
##### 2 CommentsShowHide 1 older comment
ASHA PON on 26 Apr 2022

DGM on 26 Apr 2022
Edited: DGM on 26 Apr 2022
a=[0.74 0.71 0.604 0.47 0.59 0.58 0.75];
b=[0.604 0.75];
% get the index of matches
% ainb are the indices of elements of a which are in b
% bina is a logical array describing which elements of b are in a
[bina ainb] = ismember(b,a)
bina = 1×2 logical array
1 1
ainb = 1×2
3 7
% get the matched values
a(ainb)
ans = 1×2
0.6040 0.7500
Two things:
First, if you want to get row and column subscripts for use with a 2D array, you should be able to convert idx using sub2ind().
Second, for floating-point inputs, it may be a good idea to use ismembertol() instead of ismember()
##### 1 CommentShowHide None
ASHA PON on 26 Apr 2022
Thank you for your reply. This is what i needed.

R2020a

### Community Treasure Hunt

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

Start Hunting!