如何转换" 1-D int array" to" int"在Julia(Jupyter笔记本)

时间:2017-01-17 23:32:25

标签: arrays int julia

C How to convert int array to int?中有类似的问题;但是,我在朱莉娅找不到这样的问题。

我的问题如下:

v[1] = x'*y出错 enter image description here

所以我试着找出原因并且它表明:
enter image description here

但是,x^Ty=2如果您直接键入2,则为Int64并且没有错误,如下所示:

enter image description here

那么如何将数组{Int64,1}转换为Int 64,1?

2 个答案:

答案 0 :(得分:5)

引发故障的原因是Julia-0.5仍然没有take vector transposes seriously,实际上,x'是一个1x2矩阵:

julia> x'
1×2 Array{Int64,2}:
 1  1 

显然,您希望得到xy的点积,但从技术上讲x'*y不是正确的语法,您应该使用dot(x,y)或{ {1}}:

\cdot[tab]

此问题已通过引入新类型julia> x ⋅ y 2 在Julia-0.6 master上修复:

RowVector

答案 1 :(得分:1)

您必须定义相应的转换方法:

Base.convert{T,K}(::Type{K}, x::Array{T, 1}) = Base.convert(K, x[1])

或者一般

v = zeros(Complex{Float64}, 3)
x = [1, 1]
y = [1, 1]
v1 = x'*y
v[1] = v1
v[2] = 45
v[3] = 100
v

示例:

3-element Array{Complex{Float64},1}:
   2.0+0.0im
  45.0+0.0im
 100.0+0.0im

结果:

{{1}}