How do I extract non zero minimum value and its index from a specific row??
Show older comments
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?
1 Comment
min(C(C~=0)) find(C,min(C(C~=0)))
Answers (1)
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 Comments
akash sonnad
on 20 Apr 2018
Guillaume
on 20 Apr 2018
What does operate it on any specific value mean? The minimum of a specific value is that value itself!
akash sonnad
on 20 Apr 2018
Guillaume
on 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.
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!