我决定潜入朱莉娅,撞墙;快。
我正在尝试复制一个简单的操作,该操作在python numpy中如下所示
a = numpy.array([1,2,3])
b = numpy.array([1,2,3])
a*b
[output]: [1,4,9]
换句话说,“ [1,4,9]”是我期望的输出。
我在Julia中尝试了以下方法:
a = [1,2,3]
b = [1,2,3]
a*b
[output]: MethodError: no method matching *(::Array{Int64,1}, ::Array{Int64,1})
或尝试明智之后:
a = [1,2,3]
b = [1,2,3]'
a*b
[output]: 3×3 Array{Int64,2}:
1 2 3
2 4 6
3 6 9
我知道这似乎是一个基本问题,但是我的Googling似乎不是我今天最好的,和/或stackoverflow可以使用此问题和答案;)
感谢您的帮助和指导!
最佳
答案 0 :(得分:5)
Julia需要一个。在运算符或函数调用的前面,表示您要进行元素乘法,而不要对向量作为单位进行运算。这称为广播数组:
update all
答案 1 :(得分:0)
我刚刚找到了一个解决方案,尽管肯定不是最佳解决方案,因为它会生成点积,然后选择对角线...。。。。
use LinearAlgebra
a = [1,2,3]
b = [1,2,3]
c = a * b'
diag(c)
我很确定有更好的解决方案。