bap*_*ste 1 iterator vector julia
下面我很困惑,
sqrt(1:3) * [1 2 3]
# 3x3 Matrix, as expected
sqrt(1:3) * 1:3
# error `colon` has no method matching...
Run Code Online (Sandbox Code Playgroud)
直到我意识到1:3必须是一种不同类型的野兽,即不仅仅是我从Matlab预期的向量.我目前的解决方法是使用hcat将其转换为矢量sqrt(1:3) * hcat(1:3...),是否有更好的方法?
第二个版本的主要问题
sqrt(1:3) * 1:3
Run Code Online (Sandbox Code Playgroud)
实际上是运算符优先级.冒号运算符的优先级非常低,因此转换为
(sqrt(1:3) * 1):3
Run Code Online (Sandbox Code Playgroud)
这是荒谬的,因此错误
ERROR: `colon` has no method matching colon(::Array{Float64,1}, ::Int64)`
Run Code Online (Sandbox Code Playgroud)
话虽如此,如果你用括号"修复它"它不起作用,因为没有定义运算符.因此你可能想要sqrt(1:3) * [1:3]'.
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |