extracting values above 0 in an array and putting them in a new array
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hatim Altarteer
el 3 de Jul. de 2020
Comentada: Walter Roberson
el 3 de Jul. de 2020
how can i get a 1x5 array by taking values of non-zero? (e.g. taking the first column and taking the first minimum value greater than zero)?
1 comentario
Walter Roberson
el 3 de Jul. de 2020
Question: for column 4, should the output be 1.6807 as the "first" mininum value that is greater than 0? Or should it be 1.6054 because that is the minimum non-zero value in the row? Or should it be 3.8141 because that is the first non-zero value after the 0 ?
Respuesta aceptada
dipak nigam
el 3 de Jul. de 2020
Hey, you can use the below piece of code for your desired functionality.
a(a<=0)=inf;
minArray = min(a);
If you want to keep the original array unchanged first assign it to a temporary variable and use it to extract the result.
2 comentarios
Walter Roberson
el 3 de Jul. de 2020
You are incorrect, Hatim
data = [
0 0.0754 0.2159 1.6807 2.6856
0.0754 0 0.2911 1.6054 2.7275
0.2159 0.2911 0 1.8965 2.5913
1.6807 1.6054 1.8964 0 3.8141
2.6856 2.7275 2.5913 3.8141 0
];
a = data;
a(a<=0) = inf;
minArray = min(a);
disp(minArray)
0.0754 0.0754 0.2159 1.6054 2.5913
No zeros returned at all.
dipak's solution is correct.
Más respuestas (1)
madhan ravi
el 3 de Jul. de 2020
matrix(matrix <= 0) = inf;
Wanted = min(matrix)
6 comentarios
madhan ravi
el 3 de Jul. de 2020
Hatim you need to accept dipak’s answer because he was first before me. I was typing the answer in my phone so didn’t realise there was an answer already.
Ver también
Categorías
Más información sobre Logical 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!