Azzera filtri
Azzera filtri

How do I extract non zero minimum value and its index from a specific row??

1 visualizzazione (ultimi 30 giorni)
for ex, C=[0,10,8,9,7;10,0,10,5,6;8,10,0,8,9;9,5,8,0,6;7,6,9,6,0]; i need min value from row 1 greater than zero. How do i get it?

Risposte (1)

Guillaume
Guillaume il 20 Apr 2018
Modificato: Guillaume il 20 Apr 2018

If you want the minimum value greater than 1 from all the rows, then simply replace the values below 1 by inf and take the minimum:

C = [0,10,8,9,7;10,0,10,5,6;8,10,0,8,9;9,5,8,0,6;7,6,9,6,0];
tempC = C;
tempC(C < 1) = inf;
[minofrow, whichcolumn] = min(tempC, [], 2)
  4 Commenti
Guillaume
Guillaume il 23 Apr 2018

Have you tried the code? It gives you the minimum greater (or equal( than one for each row. You can then use basic indexing to get the row that interest you.

Note that if you want the non-zero minimum instead of minimum greater than 1, then use

tempC(C == 0) = inf;

instead.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by