Finding a row with a certain condition
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
AA
el 22 de Jun. de 2016
Respondida: Star Strider
el 22 de Jun. de 2016
Assume I have the following matrix.
733458 91 1.01510000000000 1.01680000000000 1.01490000000000 1.01520000000000 1.01585000000000
733458 112 1.01620000000000 1.01620000000000 1.01400000000000 1.01610000000000 1.01510000000000
733458 135 1.01440000000000 1.01540000000000 1.01430000000000 1.01480000000000 1.01485000000000
733458 154 1.01420000000000 1.01580000000000 1.01410000000000 1.01420000000000 1.01495000000000
733458 173 1.01550000000000 1.01570000000000 1.01490000000000 1.01560000000000 1.01530000000000
I want to find the row that contains in column one the value 733458 and that is the closest to 158 in column 2. How can I do that?
1 comentario
Respuesta aceptada
Azzi Abdelmalek
el 22 de Jun. de 2016
A=[733458 91 1.01510000000000 1.01680000000000 1.01490000000000 1.01520000000000 1.01585000000000
733458 112 1.01620000000000 1.01620000000000 1.01400000000000 1.01610000000000 1.01510000000000
733458 135 1.01440000000000 1.01540000000000 1.01430000000000 1.01480000000000 1.01485000000000
733458 154 1.01420000000000 1.01580000000000 1.01410000000000 1.01420000000000 1.01495000000000
733459 173 1.01550000000000 1.01570000000000 1.01490000000000 1.01560000000000 1.01530000000000]
ii=ismember(A(:,1),733458)
B=A(ii,:)
[~,jj]=min(abs(A(ii,2)-158))
out=B(jj,:)
0 comentarios
Más respuestas (1)
Star Strider
el 22 de Jun. de 2016
One approach:
x = 158;
idx = find((M(:,1) == 733458) & ((x-M(:,2)).^2) == min( (x-M(:,2)).^2));
idx =
4
0 comentarios
Ver también
Categorías
Más información sobre Creating and Concatenating 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!