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

2 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

DGM
DGM il 26 Apr 2022
Modificato: DGM il 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()

Più risposte (0)

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by