Dear all,
I have a variable that I named it 'Selec' that was inside a for-loop and it become like this
Selec = [0] [0] [1] [0] [0] [0]
I'm trying to know the location of the highest value. In this example it is 3. So how can I do that?
I tried to use the following 'max' but it is not working
[value,index] = max(Selec);
So is it possible to make Select like this
Selec = [001000] such that I can use 'max' to find the location of 1 which is 3 in this example.
Any help will be appreciated.
Meshoo

 Réponse acceptée

Jos (10584)
Jos (10584) le 15 Jan 2014

0 votes

Apparently, Selec is a cell array. You can convert into a numerical array by concatenation:
Selec = {[0] [0] [1] [0] [0] [0] }
Selec2 = [Selec{:}]
[value,index] = max(Selec2)

4 commentaires

Meshooo
Meshooo le 15 Jan 2014
That's correct. Thank you very much.
I still have a small problem. Sometimes I will have the following value for Select
Selec = {[0] [0] [0] [0] [0] [0] }
There is no max value because all are zeros. In such a case, if I applied the max then index value = 1 which is not correct.
Selec2 = [Selec{:}]
[value,index] = max(Selec2)
>>index = 1
Do you have idea how to solve that?
Stricty speaking, zero is the maximum value. If you want to exclude specific maximum values, you could adopt something like:
[value,index] = max(Selec2)
if value == 0,
index = []
value = NaN
end
Meshooo
Meshooo le 16 Jan 2014
You are right. Thank you very much..

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by