使用 Plots.jl 我可以根据两个向量绘制散点图,并由另一个向量设置颜色,如下所示:
using Plots
scatter([1,3,5,7], [2,4,6,10], marker_z = [1,1,2,3])
Run Code Online (Sandbox Code Playgroud)
该系列既有图例,也有颜色条。
如果我设置legend = false两者都被删除:
scatter([1,3,5,7], [2,4,6,10], marker_z = [1,1,2,3], legend = false)
Run Code Online (Sandbox Code Playgroud)
我想删除该系列的图例(框中的“y1”),并保留颜色条。有谁知道这是怎么做到的吗?谢谢。
我从文本文件中读取了以下行:"1200, 1200"并且我想拆分字符串,", "以便我可以访问原始数字。我怎样才能在朱莉娅中做到这一点?
我对 Julia 比较陌生,正在移植一些 C 函数来检查速度差异。我正在努力解决的一个问题是变量的范围。具体来说,有时 Julia 中的函数调用会覆盖局部变量,而有时不会。例如,这是一个计算最小生成树的函数:
function mst(my_X::Array{Float64})
n = size(my_X)[1]
N = zeros(Int16,n,n)
tree = []
lv = maximum(my_X)+1
my_X[diagind(my_X)] .=lv
indexi = 1
for ijk in 1:(n-1)
tree = vcat(tree, indexi)
m = minimum(my_X[:,tree],dims = 1)
a = zeros(Int64, length(tree))
print(tree)
for k in 1:length(tree)
a[k] = sortperm(my_X[:,tree[k]])[1,]
end
b = sortperm(vec(m))[1]
indexj = tree[b]
indexi = a[b]
N[indexi,indexj] = 1
N[indexj,indexi] = 1
for j in tree
my_X[indexi,j] = lv
my_X[j,indexi] = lv
end
end
return …Run Code Online (Sandbox Code Playgroud) 令人遗憾的是,如此多的伟大国家(例如印度)和球员(例如莫·萨拉赫)可能永远不会参加国际足联(足球/足球)世界杯(同样的论点也适用于由少数统治者主导的其他体育赛事)队,例如国际板球和篮球锦标赛)。
尝试创建一个更加平衡的赛事,同时仍然保留基于位置的元素,每个团队具有(大致)相似的实力,并且所有玩家都来自连续区域(最好是同一块土地,但显然不可能在所有情况下都可行,并且超出了这个问题的范围)。
例如,在较弱的地区,可能他们的球队会跨越多个国家(例如,可能是南亚球队),而对于强国,可能会有多个球队(例如,一支只有来自郊区的球员的球队)巴黎)。
然后我可以绘制这些区域,也许使用 Voronois。
我设法通过(《足球经理》和《转会市场》的抓取)收集了相关信息,但我对如何设计选择球队的算法感到困惑。
有大量坐标,对应玩家的出生地。这些地方都有玩家,并且玩家都有评分(从 1 - 100)和位置。
任务是,给定一定的球队规模 (11) 和一定数量的球队(在下面的示例中为 10),以及每个位置所需的一定数量的球员(1,尽管替补球员会很方便),将将区域划分为连续的区域,其中由给定区域的玩家组成的最佳团队与其他区域的团队大致具有相同的技能。
我已经阅读了一些有关图论的内容,但我不确定从哪里开始创建解决这个问题的程序。
我正在寻找一些关于这方面的指导,并且(如果可能的话),如果你可以用玩具示例创建一些东西,那就太棒了!
另外,如果解决整体问题太困难,如果您能找到一种方法来缩小问题范围,并且可以创建一些解决较小问题的方法,然后可以将其推广到更大的问题,那就太好了。
set.seed(0)
library(tidyverse)
df <- tibble(
# generate random latitudes and longitudes, and the number of players for that location
lat = runif(100, 0, 90),
lon = runif(100, 0, 180),
players = rnorm(100, 0, 5) |> abs() |> ceiling() |> as.integer()
)
num_positions <- 11
position <- letters[1:num_positions]
df <- df …Run Code Online (Sandbox Code Playgroud) 我对Julia相对较新,我正在寻找一种有效的方式从文本文件读入并将每个"列"存储在一个数组中(我有2列,但一般解决方案也会很棒).例如,我想要输入
1 2
3 4
5 6
Run Code Online (Sandbox Code Playgroud)
被读入两个数组,比如x和y,这样x = [1 3 5]和y = [2 4 6].我有一个工作的解决方案(可能不会编译,只是自由交配),但我觉得有一种更有效的方法来做到这一点,而不是hcat和逐行读取输入文件.任何建议都非常感谢!
目前,我或多或少地做了以下事情:
x=[];
y=[];
f=open("filename");
f=readlines(f);
for str in f
s1, s2= split(str, " ");
s1=int(s1);
s2=int(s2);
x=hcat(x, s1);
y=hcat(y, s2);
end
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个Julia函数,当应用于模块名称时,它会列出通过模块可用的函数.
基本上,我不想浏览源代码,我注意到许多模块的文档通常都没有.
将rgb图像转换为灰度图像的两个函数:
function rgb2gray_loop{T<:FloatingPoint}(A::Array{T,3})
r,c = size(A)
gray = similar(A,r,c)
for i = 1:r
for j = 1:c
@inbounds gray[i,j] = 0.299*A[i,j,1] + 0.587*A[i,j,2] + 0.114 *A[i,j,3]
end
end
return gray
end
Run Code Online (Sandbox Code Playgroud)
和:
function rgb2gray_vec{T<:FloatingPoint}(A::Array{T,3})
gray = similar(A,size(A)[1:2]...)
gray = 0.299*A[:,:,1] + 0.587*A[:,:,2] + 0.114 *A[:,:,3]
return gray
end
Run Code Online (Sandbox Code Playgroud)
第一个是使用循环,而第二个使用矢量化.
在对它们进行基准测试时(使用Benchmark包),我得到了不同大小的输入图像的以下结果(f1是循环版本,f2矢量化版本):
A = rand(50,50,3):
| Row | Function | Average | Relative | Replications |
|-----|----------|-------------|----------|--------------|
| 1 | "f1" | 3.23746e-5 | 1.0 | 1000 …Run Code Online (Sandbox Code Playgroud) 我在Julia中创建了一个一维数组(矢量),即a=[1, 2, 3, 4, 5].然后我想创建一个新的向量b,其中b有完全相同的元素a,即b=[1, 2, 3, 4, 5].
似乎直接使用b = a只是为原始集合创建一个指针,这意味着如果我修改b并且a是可变的,修改也将反映在中a.例如,如果我使用!pop(b),那么b=[1, 2, 3, 4]和a=[1, 2, 3, 4].
我想知道是否有一个官方功能只是复制或克隆集合,这种变化b不会发生a.我找到了一个解决方案b = collect(a).我希望有人提供一些其他方法.
似乎朱莉娅的所有具体类型都是叶子类型,但反之则不然.例如,Type{Int64}是叶子类型,但它不具体:
julia> Type{Int64}.abstract
true
julia> Type{Int64}.isleaftype
true
Run Code Online (Sandbox Code Playgroud)
我的理解是,这是有道理的,因为没有类型的值Type{Int64}.类型Int64有具体类型DataType.但是,因为Type{Int64}没有非平凡的子类型,所以它被认为是叶子类型.
但是,文档isleaftype有点令人困惑:
isleaftype(T)
Determine whether T is a concrete type that can have instances, meaning its
only subtypes are itself and Union{} (but T itself is not Union{}).
Run Code Online (Sandbox Code Playgroud)
Type{Int64}不能有实例,所以第一句话表明它不是叶子类型.然而,确实它的唯一亚型本身就是Union{}这样,所以第二句话表明它是.
文档是否会混淆叶子类型和具体类型,如果是,那么哪个含义是正确的?
此语句通常可以成功生成3个唯一的随机数,但有时它只生成2个唯一的数字.
rand(1:length(matches), 3)
Run Code Online (Sandbox Code Playgroud)
如何重写这一点,以确保始终生成3个唯一的随机数.(我也愿意使用其他功能等)
谢谢