how to find position of an element in a matrix which is present in another matrix?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ASHA PON
el 26 de Abr. de 2022
Comentada: ASHA PON
el 26 de Abr. de 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 comentarios
Stephen23
el 26 de Abr. de 2022
Do not use ISMEMBER (unless you really know what you are doing with binary floating point numbers).
Use ISMEMBERTOL instead.
Respuesta aceptada
DGM
el 26 de Abr. de 2022
Editada: DGM
el 26 de Abr. de 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)
% get the matched values
a(ainb)
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()
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!