我正在尝试在Julia中使用LsqFit package,文档中使用了一个名为
@.
的宏,但并没有解释它是如何工作的。从软件包文档中无法确定这是否是标准的Julia宏,还是该软件包特有的内容,我也找不到其他地方关于此宏的参考资料。请问@.
在Julia中是如何工作的?@.
的宏,但并没有解释它是如何工作的。从软件包文档中无法确定这是否是标准的Julia宏,还是该软件包特有的内容,我也找不到其他地方关于此宏的参考资料。请问@.
在Julia中是如何工作的?你可以通过按下 ?
进入帮助模式来查看任何 Julia 函数的文档,如下所示:
你可以通过按下 ?
进入帮助模式来查看任何 Julia 函数的文档,如下所示:
help?> @.
@. expr
Convert every function call or operator in expr into a "dot call" (e.g. convert f(x) to f.(x)), and convert
every assignment in expr to a "dot assignment" (e.g. convert += to .+=).
If you want to avoid adding dots for selected function calls in expr, splice those function calls in with $.
For example, @. sqrt(abs($sort(x))) is equivalent to sqrt.(abs.(sort(x))) (no dot for sort).
简单来说,上面的文档描述了@.
允许您将宏后面的表达式中的所有函数调用向量化。
如果您不确定任何Julia宏的工作方式,我建议使用@macroexpand
宏,例如:
julia> @macroexpand @. [1, 2, 3] + [4, 5, 6]
:((+).([1, 2, 3], [4, 5, 6]))
A = zeros(4, 4); B = [1, 2, 3, 4]; A .= B
这样的情况,输入 ?.=
获取更多信息。 - Przemyslaw Szufela = @. b*c
,此时 a 不需要声明。 - Przemyslaw Szufel
@.
宏,手册条目和补充说明。 - ederag