在IJULIA中使用PyPplot的绘图方法错误



我正在尝试在IJulia笔记本上使用PyPlot绘制一个函数,但我不断收到错误消息。

当我运行此代码时:

function gtest2(x)
    6.34*(log2(1+exp(10.0*(x+0.5))))^0.8
end
using PyPlot
 x = -1.0:0.1:1.0;
plot(x, gtest2(x));

我收到如下错误:

方法错误: 没有方法匹配 ^(::Array{Float64,1}, ::Float64( 最接近的候选者是: ^(::Float64, ::Float64( at math.jl:355 ...

在使用 gtest2(x::Number)gtest2(x::Float64) 定义函数时,我尝试定义不同类型的变量,但我有同样的错误。

它使用 linespace 而不是 -1.0:0.1:1.0 做同样的事情。我知道函数在输入中看到的格式与定义不匹配,但我不明白我做错了什么,因为简单的函数工作:

function f(x)
    x
end
plot(x,f(x))

为什么在第一种情况下会出现这些错误?

我在野生动物园上使用IJulia笔记本0.5.1。

您的代码无法正确处理向量,因此您需要更改gtest使用 . 矢量化语法

function gtest2(x)
    6.34*(log2.(1 + exp.(10.0*(x + 0.5)))).^0.8
end

甚至更容易使用点矢量化,如下所示

plot(x, gtest2.(x));

要了解有关点矢量化的更多信息,请参阅文档中的以下内容:https://docs.julialang.org/en/latest/manual/functions.html#man-vectorized-1

第一个定义也适用于:

map(gtest2, x)

gtest2.(x)

最新更新