小编new*_*his的帖子

如何从 Julia 的元素列表中随机选择 n 个唯一元素

我想从数字列表中生成 n 个唯一元素。我遇到了这个答案,但这只给了我一个要素。我想要列表中的 n 个不同元素。

我该怎么做呢?

我尝试过使用rand(list,n),但这有时会给我重复的元素,list所以这不起作用。

random julia

9
推荐指数
1
解决办法
1597
查看次数

Julia 的启动和运行文件花费的时间异常长

我正在运行 Julia 1.6.3。过去 3-4 天我一直在使用 Julia。我对Python有一点经验。我在 Jupyter 笔记本上运行 IJulia。前两天一切都还好。如今,仅仅添加软件包就需要花费非常非常长的时间。我的第一个单元格是

using Pkg
Pkg.add("Plots")
Run Code Online (Sandbox Code Playgroud)

这大约需要 5 分钟才能发生。事实上,无论如何,它都卡在“内核正在启动,请等待”上很长很长一段时间。此外,每当我想中断内核时,我都会收到一条消息说“正在中断内核”,但实际上什么也没发生。代码继续运行(而不是看起来只是冻结了)。我似乎需要重新启动内核并重新运行所有内容,当我尝试这样做时,这个问题就会重复出现。

即使是简单的功能也需要很长时间。我已经尝试重新安装 Julia 和 IJulia 几次。有人可以帮我吗?

performance julia

5
推荐指数
0
解决办法
337
查看次数

同一图朱莉娅上的多个图

我正在编写一个 Julia 程序,它迭代地运行另一个函数,并给出两组结果。我想绘制这些结果,现在我正在做的是for分别绘制每个循环的结果,这为下面的示例提供了大约 20 个图:这样说:

for i in 1:10
    x1,y1 = first_function(a,b,c)
    plot(x1,y1)
end
for j in 1:10
    x2,y2 = second_function(a,b,c)
    plot(x2,y2)
end

Run Code Online (Sandbox Code Playgroud)

我尝试使用该plot!()命令,但这给了我在同一个图上的所有 20 个图,这是我不想要的。我想做的是将每次迭代的两个函数的结果绘制在同一个图上。例如,我想要 10 个图,每次迭代一个,其中每个图都有 和 的first_function()结果second_function。我尝试了以下方法:

for j in 1:10
    x1,y1 = first_function(a,b,c)
    x2,y2 = second_function(a,b,c)
    plot!(x1,y1)
    plot!(x2,y2)
end
Run Code Online (Sandbox Code Playgroud)

然而,这似乎也不起作用。

编辑:根据我收到的答案,我发现以下方法可以解决问题:

for i in 1:10
    x1,y1 = first_function(a,b,c)
    x2,y2 = second_function(a,b,c)
    plot(x1,y1)
    plot!(x2,y2)
end
Run Code Online (Sandbox Code Playgroud)

这会在循环的每次迭代结束时生成一个新的图,这就是我想要的。

julia plots.jl julia-plots

4
推荐指数
1
解决办法
2430
查看次数

将 Matlab 中的矩阵导入 Julia

我收到了一个 Matlab 文件,其中应该包含一些矩阵。我在 Matlab 在线上打开它,它看起来像一个 Excel 工作表,其中每个单元格都有一个类变量double,并被称为sparse double. 如果我尝试打印它,它会给出一个坐标列表,后跟 1。例如:

\n
(100,1)   1\n(123,132) 1\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用的矩阵只能有 0,1 作为元素,所以我假设所有其他坐标都为零。但是,我不知道如何将其显示为矩阵或以某种方式将其作为数组导入 Julia。我对 Matlab 毫无了解,我什至不想在 Matlab 上工作,因为我的程序的其余部分都是在 Julia 中完成的。

\n

编辑:正如评论所建议的,我只是留下我正在使用的代码以便尝试导入它。在Matlab程序中,我有一个“单元”格式的单个变量,其大小为1x10,称为modmat. 其中每个都包含 1 个266x266 sparse double矩阵,我将其访问为等modmat{1}modmat{2}

\n

MATLAB:

\n
writematrix(modmat{1},"Mat1.txt")\n
Run Code Online (Sandbox Code Playgroud)\n

在朱莉娅:

\n
> using DelimitedFiles\n> M1 = open(readdlm,"Mat1.txt")\n
Run Code Online (Sandbox Code Playgroud)\n

输出是一个266\xc3\x971 Matrix{Any}:变量

\n

arrays matlab sparse-matrix julia

4
推荐指数
1
解决办法
727
查看次数

访问 Julia 矩阵中的任意行

我有以下代码,其中给定i我想找到i矩阵的第行。我的代码如下:

function f(mat,i)
     println(mat[:i,:])
end
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

ArgumentError: invalid index: :i of type Symbol
Run Code Online (Sandbox Code Playgroud)

我尝试打印iusing的类型typeof,它说是Int64。此外,如果我尝试只找到第一行,那么mat[:1,:]我就可以完成这项工作,所以我认为问题不在于切片语法。

types matrix slice argument-error julia

3
推荐指数
1
解决办法
1456
查看次数