Julia 在函数中使用==

Julia 在函数中使用==,julia,Julia,我的函数有问题。 此函数用于计算数组中的某些值,如果等式为真,则应返回该值。 它不起作用了。 这是我的密码 λ = 650*10^-9 # Longitud de onda b = 2*10^-3 #Ancho de una rendija k = 2π/λ #Constante n = 1 #Número de rendijas m = -10:10 max = [] Trash = [] o = -1:0.01:1 function Maximo(A,B,C

我的函数有问题。 此函数用于计算数组中的某些值,如果等式为真,则应返回该值。 它不起作用了。 这是我的密码

λ = 650*10^-9     # Longitud de onda
b = 2*10^-3     #Ancho de una rendija
k = 2π/λ     #Constante
n = 1     #Número de rendijas
m = -10:10
max = []
Trash = []
o = -1:0.01:1

function Maximo(A,B,C)
    tan(B*sin(A)*C/2) == B*sin(A)*C/2

    if true
        push!(max,A)
    else 
        push!(Trash, A)
    end
end
请注意并原谅我糟糕的英语和编程技能

我只想得到o的值,它的等式为真。” 我不在乎垃圾;这是我在绝望中做出的正义和安排

然后,当我打电话的时候

Maximo.(o,k,b)
它返回一个201元素数组{Array{Any,1},1}


你能帮我一个忙吗?

我不太明白你的要求,但我认为这应该是好的

function maximos(A, b, c)
    # make a new array of the same type as A, but with size 0
    result = similar(A, 0)  

    for a in A
        if tan(b * sin(a) * c/2) == b * sin(a) * c/2
            push!(result, a)
        end
    end

    return result
end
请注意,您需要将其命名为max=maximoso,k,b,尽管您不应该将结果命名为max,因为它已经是标准库中现有的函数名

如果你熟悉了高阶函数,你可以开始写一些东西,比如

maximos(A, b, c) = filter(A) do a
    tan(b * sin(a) * c/2) == b * sin(a) * c/2
end

非常感谢你,朋友!它现在正在工作。我真的很感谢你的帮助,因为我对这方面非常、非常陌生。