How to combine several arrays?

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

 Accepted Answer

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 Comments

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
You are right. Thank you very much..

Sign in to comment.

More Answers (0)

Asked:

on 15 Jan 2014

Edited:

on 23 Jan 2014

Community Treasure Hunt

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

Start Hunting!