# code
function calcuentropy(m::Array{Real})
res = 0.0
for e in m
res += -e*log2(e)
end
return res
end
自己写一个求熵函数,但是发现一运行就报错
百般测试发现,如果在交互窗口写循环直接用x就不会出错
所以这是不是参数传递的问题?
就算是引用传递不应该使用的时候就解引用了么?
心塞塞,有没有大佬给解答一下,谢谢啦
# code
function calcuentropy(m::Array{Real})
res = 0.0
for e in m
res += -e*log2(e)
end
return res
end
自己写一个求熵函数,但是发现一运行就报错
百般测试发现,如果在交互窗口写循环直接用x就不会出错
所以这是不是参数传递的问题?
就算是引用传递不应该使用的时候就解引用了么?
心塞塞,有没有大佬给解答一下,谢谢啦
# code
function calcuentropy(m)
res = 0.0
for e in m
res += -e*log2(e)
end
return res
end
试试这样可以不
NaN,有可能是类型问题
其实原因在于,它调用到你定义的另一个函数去了。这个函数的参数正确的写法应该是 m::Array{<:Real}
。
可以看帮助上的UnionAll类型
另外如果这里是矩阵应该可写成AbstractArray{<:Real, 2} 或者AbstractMatrix{<:Real}
那个计算确实有点问题,谢谢啦
谢谢啦,类型果然是不太会用啊
哦~我看过手册了但是没理解,谢谢了
原来是这样,谢谢啦