Effacer les filtres
Effacer les filtres

Minimum value with row index

2 vues (au cours des 30 derniers jours)
Mohammad Yunus Ali
Mohammad Yunus Ali le 29 Mar 2011
I wrote the following code to get a minimum positive value and the row index as well but the output is giving wrong row index. Anyone can help me?
The answer should be...minba=0.005 ri=9
clc; clear all;
ba=[52 15 52 44 44 0 -25 -4 .05]; [minba ri]=min(ba((ba>0)))

Réponse acceptée

Sean de Wolski
Sean de Wolski le 29 Mar 2011
idx = min(find(ba==minba))
  2 commentaires
Walter Roberson
Walter Roberson le 29 Mar 2011
idx = find(ba==minba,1);
Matt Fig
Matt Fig le 29 Mar 2011
I understand the question to be "How do I find the minba and ri," not, "Given, minba, how to find the ri?"

Connectez-vous pour commenter.

Plus de réponses (2)

Matt Fig
Matt Fig le 29 Mar 2011
If minba is not known before hand (the general case, and what it sounds like you want to have), then:
ba = [52 15 52 44 44 0 -25 -4 .05]; % Your data...
ba(ba<=0) = inf; % Take non-positive values out of the picture.
[minba,ri] = min(ba) % Find the min and index.
minba =
0.05
ri =
9
A faster alternative to the above, if the number of non-positives is a large fraction of the whole:
minba = min(ba((ba>0)));
ri = find(ba==minba,1);
  3 commentaires
Matt Fig
Matt Fig le 29 Mar 2011
How would you use FIND if minba wasn't known before hand? I think anything that could do this using FIND would be slower than what I showed...
Matt Fig
Matt Fig le 29 Mar 2011
But I was wrong. This is faster indeed, when the number of non-positives is a large fraction of the whole:
minba = min(ba((ba>0)));
ri = find(ba==minba,1);

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 29 Mar 2011
idx = find(ba > 0,1);
minba = ba(idx);
  5 commentaires
Sean de Wolski
Sean de Wolski le 29 Mar 2011
Congrats Walter on your 1000th answer!
Matt Fig
Matt Fig le 29 Mar 2011
@Walter
Qouting the OP (without quotes of course)
I wrote the following code to ...
The answer _should_ _be_...minba=0.005 ri=9
So I assume Mohammad wanted to be shown the _correct_ way to get both minba and ri.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by