min(C(C~=0)) find(C,min(C(C~=0)))
How do I extract non zero minimum value and its index from a specific row??
2 次查看(过去 30 天)
显示 更早的评论
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 个)
Guillaume
2018-4-20
编辑:Guillaume
2018-4-20
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 个评论
Guillaume
2018-4-23
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!