# Question about findmax

**URL:** https://discourse.julialang.org/t/question-about-findmax/45149
**Category:** General Usage
**Tags:** question
**Created:** [August 18, 2020, 9:33am UTC](https://discourse.julialang.org/t/question-about-findmax/45149 "2020-08-18T09:33:12Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 9:33am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/1 "2020-08-18T09:33:12Z")

</div>

this is my code:

```julia
using StatsBase,DelimitedFiles
#function Characteristics(Data,)
    global max_index_mean_var=Matrix{Matrix{Float64}}(undef,4*size(Data,1),size(Data,2))
# global mean_var=Matrix{Matrix{Float64}}(undef,2*size(Data,1),size(Data,2))
    for i=1:size(Data,1)
        j=1:size(Data,2)
        #max_index_mean_var[4*i-3,j]=maximum(Data[i,j],dims=1)
        max_index_mean_var[4*i-3,j]=getindex.(findmax(Data[i,j],dims=1)[1],1)
        #max_index_mean_var[4*i-2,j]=getindex.(getindex(findmax(Data[i,j][1],dims=1),1))
        #max_index_mean_var[4*i-1,j]=mean_and_var(Data[i,j],2)[1]
        #max_index_mean_var[4*i,j]=mean_and_var(Data[i,j],2)[2]
    end

```

this is the "Data"in my code :

 ![image](https://global.discourse-cdn.com/julialang/original/3X/e/5/e52e79d7dc6dff610ff7d390071a7c7e5be375ff.png)  
this is the error:  
ERROR: LoadError: MethodError: no method matching isless(::Array{Float64,2}, ::Array{Float64,2})  
Closest candidates are:  
isless(::Missing, ::Any) at missing.jl:87  
isless(::Union{CategoricalString{R}, CategoricalValue{T,R} where T} where R, ::Any) at C:\Users\27990.juliapro\JuliaPro\_v1.4.2-1\packages\CategoricalArrays\dmrjI\src\value.jl:191  
isless(::Any, ::Missing) at missing.jl:88  
I tried to fix the code, but nothing worked,I don’t think this code is logically flawed,why???  
please help me!thanks!!!

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [August 18, 2020, 9:46am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/2 "2020-08-18T09:46:35Z")

</div>

This error here

> [@abcde](#):
>
> `ERROR: LoadError: MethodError: no method matching isless(::Array{Float64,2}, ::Array{Float64,2})`

indicates that `Data[i, j]` is _not_ a matrix, but an array of matrices. That means that `Data` is an array of arrays of arrays, instead of just an array of arrays. Can you try to figure that out? What are

```julia
typeof(Data)

```

and

```julia
typeof(Data[1,1])

```

?

You cannot call `findmax` on an array of arrays, since there is no defined method for determining if one array is greater than another (that’s the missing `isless` method.)

---

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 9:52am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/3 "2020-08-18T09:52:46Z")

</div>

```julia
global a=Matrix{Matrix{Float64}}(undef,5,2)
q=Matrix{Matrix{Float64}}(undef,5,2)
b=[1 22 13;11 5 6;7 8 9]
for i=1:10
    j=1:2
global a[i]=b
end

for i=1:5
    for j=1:2
q[i,j]=getindex.(findmax(a[i,j],dims=1)[1],1)
end 
end

```

But this code works,why?

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [August 18, 2020, 9:59am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/4 "2020-08-18T09:59:07Z")

</div>

> [@abcde](#):
>
> ```julia
> global a=Matrix{Matrix{Float64}}(undef,5,2)
> q=Matrix{Matrix{Float64}}(undef,5,2)
> b=[1 22 13;11 5 6;7 8 9]
> for i=1:10
> j=1:2
> global a[i]=b
> end
> 
> for i=1:5
> for j=1:2
> q[i,j]=getindex.(findmax(a[i,j],dims=1)[1],1)
> end 
> end
> 
> ```

It works because `a[i, j]` is an ordinary matrix here, but that is not the case for `Data[i, j]`, apparently.

By the way, it is needlessly complicated to write

```julia
q[i,j]=getindex.(findmax(a[i,j],dims=1)[1],1)

```

Instead, just write

```julia
q[i, j] = maximum(a[i, j]; dims=1)

```

---

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 10:01am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/5 "2020-08-18T10:01:09Z")

</div>

![image](https://global.discourse-cdn.com/julialang/original/3X/3/b/3b17991603aea529795f7197df547252d890c46f.png)  
They’re of the same type

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [August 18, 2020, 10:03am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/6 "2020-08-18T10:03:20Z")

</div>

Can you run the following code:

```julia
typeof(Data)

```

And then

```julia
maximum(Data[1, 1]; dims=1)

```

?  
(Sorry, I had a typo at first)

---

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 10:06am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/7 "2020-08-18T10:06:45Z")

</div>

![image](https://global.discourse-cdn.com/julialang/original/3X/a/f/af21c3a268bf2e60d7213a35ba79428b15d0663d.png)

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [August 18, 2020, 10:10am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/8 "2020-08-18T10:10:31Z")

</div>

What happens if you run

```julia
global max_index_mean_var=Matrix{Matrix{Float64}}(undef,4*size(Data,1),size(Data,2))
# global mean_var=Matrix{Matrix{Float64}}(undef,2*size(Data,1),size(Data,2))
    for i=1:size(Data,1)
        j=1:size(Data,2)
        #max_index_mean_var[4*i-3,j]=maximum(Data[i,j],dims=1)
        max_index_mean_var[4*i-3,j]=getindex.(findmax(Data[i,j],dims=1)[1],1)
        #max_index_mean_var[4*i-2,j]=getindex.(getindex(findmax(Data[i,j][1],dims=1),1))
        #max_index_mean_var[4*i-1,j]=mean_and_var(Data[i,j],2)[1]
        #max_index_mean_var[4*i,j]=mean_and_var(Data[i,j],2)[2]
    end

```

now?

By the way, you should really avoid using globals, and make sure that your code are functions.

---

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 10:16am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/9 "2020-08-18T10:16:27Z")

</div>

![image](https://global.discourse-cdn.com/julialang/original/3X/f/7/f7a45886dc6bd9ed75c66e838b0d6bec2a99d47a.png)  
it always does not work

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [August 18, 2020, 10:50am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/10 "2020-08-18T10:50:50Z")

</div>

I’m afraid I cannot see what’s wrong here.

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [August 18, 2020, 11:16am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/11 "2020-08-18T11:16:16Z")

</div>

~~What is the output of:

```julia
q=Matrix{Any}(undef,size(Data,1),size(Data,2));
for i=1:size(Data,1)
    for j=1:size(Data,2)
       q[i,j]=typeof(Data[i,j])
    end
end
unique(q)

```

 ~~~~ I hope it works, but the idea is clear? Output should be:

```julia
julia> unique(q)
1-element Array{Any,1}:
 Array{Float64,2}

```

 ~~

---

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 11:28am UTC](https://discourse.julialang.org/t/question-about-findmax/45149/12 "2020-08-18T11:28:50Z")

</div>

thank you anyway!

---

<div class="post-metadata">

### Author: ![abcde](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abcde/32/16180_2.png) [@abcde](https://discourse.julialang.org/u/abcde)
#### Post date: [August 18, 2020, 2:44pm UTC](https://discourse.julialang.org/t/question-about-findmax/45149/14 "2020-08-18T14:44:21Z")

</div>

It’s supposed to be the error of the findmax function, but I’ve done other experiments, and everything else is correct except this one 😣

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [August 18, 2020, 3:00pm UTC](https://discourse.julialang.org/t/question-about-findmax/45149/15 "2020-08-18T15:00:47Z")

</div>

~~I suspect your Data structure has some wrong entries. Thats the test for to check if every single entry is of type ``` Array{Float64,2} ```~~

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [August 18, 2020, 7:36pm UTC](https://discourse.julialang.org/t/question-about-findmax/45149/16 "2020-08-18T19:36:59Z")

</div>

I see my error now 🙂
