首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Julia的高维空间中创建一个非线性结构

在Julia的高维空间中创建一个非线性结构
EN

Stack Overflow用户
提问于 2022-11-13 20:19:32
回答 1查看 61关注 0票数 0

假设我在一个20昏暗的空间中创建了一个非线性结构。现在我有密码

代码语言:javascript
复制
    using Random

"`Uniform(0,b)`, with `0` excluded for sure, and we really mean it."
struct PositiveUniform{T}
    b::T
end


function Base.rand(rng::Random.AbstractRNG, pu::PositiveUniform)
    while true
        r = rand(rng)
        r > 0 && return r * pu.b
    end
end

    m = rand(PositiveUniform(20))
    mat_new = [cos(m),sin(m),cos(m),sin(m),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]'
for i in 1:84
    m = rand(PositiveUniform(20))
    vector = [cos(m),sin(m),cos(m),sin(m),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    mat_new = vcat(mat_new, vector')
end
mat_new'

我的mat_new就像

我想知道这个矩阵满足我的期望吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-14 04:59:38

(编辑:我制作了一个2D结构20x85,填充了零,因为这才是我们想要的,而不是20D数组。)

代码语言:javascript
复制
const cols = 85
const rows = 20
const vec85 = rand(cols) .* rows
const mat2D = vcat(cos.(vec85)', sin.(vec85)', cos.(vec85)', sin.(vec85)', zeros(rows - 4, cols))

display(mat2D)

显示:

代码语言:javascript
复制
20×85 Matrix{Float64}:
-0.917208  -0.999591   -0.95458   -0.681959  0.999834   …  0.704834  0.961039  0.982991   0.967226   0.306118
0.398409   0.0286128  -0.297954  -0.731391  0.0182257     0.709372  0.276413  0.183653  -0.253917  -0.951993
-0.917208  -0.999591   -0.95458   -0.681959  0.999834      0.704834  0.961039  0.982991   0.967226   0.306118
0.398409   0.0286128  -0.297954  -0.731391  0.0182257     0.709372  0.276413  0.183653  -0.253917  -0.951993
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0        …  0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
⋮                                                      ⋱  ⋮
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0        …  0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0
0.0        0.0         0.0        0.0       0.0           0.0       0.0       0.0        0.0        0.0

注意:我保留了你的算法(也许不是故意的?)将参数设置为sin和cos为nrow乘以rand()。如果您想要填充2D数组,使其不仅仅包含矩阵,我将查看PaddedViews.jl或类似的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74424448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档