如何使 for 循环中的数组在 Julia 中全局可用?
How to make an array from for loop globally available in Julia?
我正在用 Julia 编写代码。在这里,我有一个大小为 272x32 的数据框。我的objective是在每一列中找到最小值,并将它们存储在一个包含32个元素的数组中。为了执行此操作,我创建了一个 for 循环,遍历数据框中的列范围。但是,在将值分配为全局值后,存储的输出只有最后一个值。但是,我希望它具有最少的列作为数组中的每个条目,我可以将它用于矩阵算术运算。
代码片段:
n = ncol(variables)
for i in 1:n
global mins = minimum(variables[!, i])
global maxs = maximum(variables[!, i])
end
请指教以解决此问题。
此致,
我不是 100% 确定这是否是您要的,但看起来是:
mins = minimum.(eachcol(variables))
maxs = maximum.(eachcol(variables))
还有一种方法可以解决这个问题,
mins = zeros(n)
maxs = zeros(n)
n = ncol(variables)
for i in 1:n
mins[i] = minimum(variables[!, i])
maxs[i] = maximum(variables[!, i])
end
但不知道对执行速度或内存分配有什么影响?
我正在用 Julia 编写代码。在这里,我有一个大小为 272x32 的数据框。我的objective是在每一列中找到最小值,并将它们存储在一个包含32个元素的数组中。为了执行此操作,我创建了一个 for 循环,遍历数据框中的列范围。但是,在将值分配为全局值后,存储的输出只有最后一个值。但是,我希望它具有最少的列作为数组中的每个条目,我可以将它用于矩阵算术运算。
代码片段:
n = ncol(variables)
for i in 1:n
global mins = minimum(variables[!, i])
global maxs = maximum(variables[!, i])
end
请指教以解决此问题。
此致,
我不是 100% 确定这是否是您要的,但看起来是:
mins = minimum.(eachcol(variables))
maxs = maximum.(eachcol(variables))
还有一种方法可以解决这个问题,
mins = zeros(n)
maxs = zeros(n)
n = ncol(variables)
for i in 1:n
mins[i] = minimum(variables[!, i])
maxs[i] = maximum(variables[!, i])
end
但不知道对执行速度或内存分配有什么影响?