dataframe - 在 Julia 的绘图函数中使用运算符
问题描述
我有以下数据框
我想绘制Evar / (T^2 * L)
using Plots, DataFrames, CSV
@df data plot(:T, :Evar / (:T * T * :L) , group=:L, legend=nothing)
MethodError: no method matching *(::Vector{Float64}, ::Vector{Float64})
不幸的是,我不确定如何在绘图函数中使用运算符。对于“/”运算符,它似乎可以工作,但如果我想使用“*”进行乘法运算,则会出现上述错误。
这是我所说的“/”工作的一个例子:
解决方案
您需要向量化乘法和除法,因此这将是:
@df data plot(:T, :Evar ./ (:T .* :T .* :L) , group=:L, legend=nothing)
更简单的例子:
julia> a = [1,3,4];
julia> b = [4,5,6];
julia> a * b
ERROR: MethodError: no method matching *(::Vector{Int64}, ::Vector{Int64})
julia> a .* b
3-element Vector{Int64}:
4
15
24
不是这样,/
因为/
它是为向量定义的,但结果可能并不完全符合您的要求:
julia> c = a / b
3×3 Matrix{Float64}:
0.0519481 0.0649351 0.0779221
0.155844 0.194805 0.233766
0.207792 0.25974 0.311688
它只是返回矩阵,例如矩阵乘法c*b == a
在哪里。*
推荐阅读
- karate - 使用 karate.call 和条件逻辑
- python - 如何使用有限数据的数学约束来约束 lmfit?
- ruby - 添加具有 nil 值的新动态属性
- python - 未记录在 while 循环中的变量
- excel - 如何将 ADODB 连接字符串解析为更新的窗口和 excel?
- tensorflow - 构建 libtensorflowlite.so 没有任何错误,但共享文件接近空 (KB)
- sql - SQL查询子集中的最大值
- python - 踢命令(discord.py)
- android - Kotlin try-catch 在 catch 后恢复
- java - 拆箱会减慢 Java 流的速度吗?