小编Miz*_*zle的帖子

如何在Julia中按组生成随机整数

首先,我想将1到n的整数均分为m组。

其次,我想生成随机整数,而不用 Julia 在每组中进行替换。

第三,我想组合所有随机整数。

例如,n=10000,m=2。那么朱莉娅代码将是

using Distributions
n=10000
order1 = sample(1:5000, 5000, replace = false)
order2 = sample(5001:10000, 5000, replace = false)
order=[order1;order2]
Run Code Online (Sandbox Code Playgroud)

例如,n=10000,m=5。那么朱莉娅代码将是

using Distributions
n=10000
order1 = sample(1:2000, 2000, replace = false)
order2 = sample(2001:4000, 2000, replace = false)
order3 = sample(4001:6000, 2000, replace = false)
order4 = sample(6001:8000, 2000, replace = false)
order5 = sample(8001:10000, 2000, replace = false)
order=[order1;order2;order3;order4;order5]
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否可以改进上面的 Julia 代码。如果m=100。那么我的代码将会非常长。必须有一种更简单的方法来做到这一点。

julia

6
推荐指数
1
解决办法
98
查看次数

Julia Threads.@threads 在一个简单的例子中不起作用

我在 Julia 中运行双循环。代码非常简单。

w = rand(1000,1000)
function regular_demo(w::Array{Float64, 2})
    n = size(w)[1]
    G = zeros(n,n)
    @inbounds for j in 1:n-1
    wjj = w[j, j]
        for i in j+1:n
            wii = w[i, i]
            wij = w[i, j]
            sum = wii + 2wij + 3wjj 
            sum_inverse = inv(sum)
            G[j,j] = G[j,j] + sum_inverse
            G[i,i] = G[i,i] + sum_inverse
            G[i,j] = G[i,j] - sum_inverse
            G[j,i] = G[j,i] - sum_inverse         
        end
    end
G
end
regular_demo(w)
Run Code Online (Sandbox Code Playgroud)
function thread_demo(w::Array{Float64, 2})
    n = size(w)[1]
    G = zeros(n,n) …
Run Code Online (Sandbox Code Playgroud)

julia

5
推荐指数
1
解决办法
1246
查看次数

如何将向量从上三角矩阵转移到原始对称矩阵?

我有一个非常大的对称矩阵,称为M。矩阵的大小M为 1000000 * 1000000。令表示 矩阵 的第 行和第 列的M[i,j]元素。对称矩阵的上三角部分保存为名为 的向量。。我有三个问题。ijMMVV = [M[1,1], M[1,2], M[2,2], M[1,3], M[2,3], M[3,3], M[1,4], M[2,4], M[3,4], M[4,4] ,..., M[1000000, 1000000]]

(1)如何V高效转换M

(2)如何高效地转换V为对称矩阵的上三角部分M?我的意思是转换V为另一个矩阵W。的上三角部分与 中的其他元素W相同,均为 0。MW

(3) 如何高效地转换V为对称矩阵的下三角部分M?我的意思是转换V为另一个矩阵Q。的下三角部分与 中的其他元素Q相同,均为 0。MQ

julia

5
推荐指数
1
解决办法
418
查看次数

如何提高 Julia 中大型矩阵乘法的速度

有两个矩阵A和B。A和B的维度都是100000×100000。矩阵B是对称矩阵。我想计算 A B A。我只使用 julia 代码

A*B*A 
Run Code Online (Sandbox Code Playgroud)

要做到这一点。但这需要很长时间。我只是想知道是否有更好的方法可以做到这一点。

julia

5
推荐指数
1
解决办法
814
查看次数

如何跳过Julia循环中的错误

我想跳过茱莉亚循环中的错误。示例如下。我想计算向量中每个元素的平方根。由于sqrt(-16)是一个复杂值,Julia将报告错误并停止循环。我希望julia在循环中有错误时继续循环。我正在寻找的输出是结果= [1、2、3、99999、5、6],其中99999表示存在错误。

vec = [1,4,9,-16,25,36]
result = zeros(6)
for i = 1:6
  result[i] = sqrt(vec[i])
end

Run Code Online (Sandbox Code Playgroud)

julia

4
推荐指数
2
解决办法
78
查看次数

如何在 julia 的大矩阵中保留带状对角矩阵并将其他元素替换为 0

我想保留对角矩阵并将其他元素替换为 0 在朱莉娅的大矩阵中。例如,A我有一个矩阵,我只想保留 2 x 2 对角线元素A,并将所有其他元素替换为 0。B矩阵就是我想要的。我只是想知道是否有一种优雅的方法来做到这一点。

A = [1 2 3 4 5 6 7 8; 
     1 2 3 4 5 6 7 8; 
     1 2 3 4 5 6 7 8; 
     1 2 3 4 5 6 7 8; 
     1 2 3 4 5 6 7 8;
     1 2 3 4 5 6 7 8; 
     1 2 3 4 5 6 7 8; 
     1 2 3 4 5 6 7 8] …
Run Code Online (Sandbox Code Playgroud)

julia

4
推荐指数
2
解决办法
321
查看次数

标签 统计

julia ×6