Julia如何在代码中实现类似MATLAB中addpath(genpath(path))的操作
技术分享
发布于 2025-07-22 10:46:39
查看 1过去315天
在 Julia 中,并没有直接可调用的函数实现 MATLAB 中 addpath(genpath(path)) 的操作,我们可以编写一个工具函数来实现该操作。
# addpath(add_path::String)::Nothing
# 使用前请先include("addpath.jl"),即可使用该函数
# 类似于MATLAB中的addpath(genpath(add_path)),批量添加函数
# Examples
julia> addpath("/home/JuliaUser/Projects/julia/functions")
julia> addpath("/home/JuliaUser/Projects/julia/functions/mysum.jl")
function addpath(add_path::String)::Nothing
if isfile(add_path)
include(add_path) # 传入文件直接 include
else
all_files::Vector{String} = []
for (root, _, files_in_dir) in walkdir(add_path)
for file in files_in_dir
push!(all_files, joinpath(root, file))
end
end
jl_files = filter(item -> endswith(item, ".jl"), all_files)
for jl_file in jl_files
include(jl_file)
end
end
nothing
end
工具函数addpath说明:
1.include 函数可导入该jl文件中定义的所有函数,也可以运行jl脚本。所以,在使用该工具函数时,要注意该jl文件或者文件夹内的jl文件最好全为函数文件,存在脚本文件时会自动运行该脚本,造成不必要的操作。
2.如何导入该函数?
include("[该工具函数的路径]")
3.如何使用?
输入函数名出现 xxx (generic function with 1 method) 代表函数 xxx 已加载成功
• 导入单个函数文件
addpath("core/add_.jl")
add_
# add_ (generic function with 1 method)
• 导入文件夹时
addpath("core")
generate_file_names
# generate_file_names (generic function with 1 method)
sort_by_prefix_and_number
# sort_by_prefix_and_number (generic function with 1 method)
add_
# add_ (generic function with 1 method)
所属专栏:Julia语言
产品信息:Syslab科学计算环境