专栏
标签
使用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))

image.png

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

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天