C How to convert int array to int?中有类似的问题;但是,我在朱莉娅找不到这样的问题。
我的问题如下:
但是,x^Ty=2
如果您直接键入2
,则为Int64
并且没有错误,如下所示:
那么如何将数组{Int64,1}转换为Int 64,1?
答案 0 :(得分:5)
引发故障的原因是Julia-0.5仍然没有take vector transposes seriously,实际上,x'
是一个1x2矩阵:
julia> x'
1×2 Array{Int64,2}:
1 1
显然,您希望得到x
和y
的点积,但从技术上讲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}}