Matplotlib IJulia中使用PyPlot的绘图方法错误

Matplotlib IJulia中使用PyPlot的绘图方法错误,matplotlib,julia,ijulia-notebook,Matplotlib,Julia,Ijulia Notebook,我试图在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)); 我犯了如下错误: MethodError:没有匹配^(::数组{Float64,1},::Float64)的方法 最接近的候选人是:^(::Float64,::F

我试图在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));
我犯了如下错误:

MethodError:没有匹配^(::数组{Float64,1},::Float64)的方法 最接近的候选人是:^(::Float64,::Float64)在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))
为什么我在第一个案例中会出现这些错误


我正在safari上使用IJulia notebook 0.5.1。

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

function gtest2(x)
    6.34*(log2.(1 + exp.(10.0*(x + 0.5)))).^0.8
end
或者更容易使用点矢量化,如下所示

plot(x, gtest2.(x));

要了解有关点矢量化的更多信息,请参阅文档中的以下内容:

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

function gtest2(x)
    6.34*(log2.(1 + exp.(10.0*(x + 0.5)))).^0.8
end
或者更容易使用点矢量化,如下所示

plot(x, gtest2.(x));

要了解有关点矢量化的更多信息,请参阅文档中的以下内容:

第一个定义也适用于:

map(gtest2, x)


第一个定义也适用于:

map(gtest2, x)


它工作得很好!我会看这一页,谢谢!它工作得很好!我会看这一页,谢谢!