使用interp1函数报错:float not defined on abstractly-typed arrays,如何处理?
技术分享
发布于 2025-07-10 10:38:29
查看 1过去327天
变量的数据类型不符合函数 interp1 的输入参数类型。
interp1函数的输入参数样本点,参数类型需为Int/Float。使用Float64.(VoltCCslice) 把数据类型转为Float64类型即可。
示例代码:
using TyMath
function create_abstract_arrays()
arr1 = Vector{Real}(undef, 102)
arr2 = Vector{Real}(undef, 102)
arr3 = Vector{Real}(undef, 102)
for i in 1:102
arr1[i] = i
arr2[i] = i + 100
arr3[i] = i + 200
end
return arr1, arr2, arr3
end
VoltCCslice, CapaCCslice, CurrrCCslice = create_abstract_arrays()
CapaCCslice_inter = interp1(VoltCCslice, CapaCCslice, minimum(VoltCCslice):0.01:maximum(VoltCCslice))
将以上示例代码中的VoltCCslice 变量数据类型修改为Float64.(VoltCCslice),可以运行成功。
CapaCCslice_inter = interp1(Float64.(VoltCCslice), CapaCCslice, minimum(VoltCCslice):0.01:maximum(VoltCCslice))

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境