我想在julia中使用随机生成器对正态分布数进行几次检查.所以我想要的是获得相同的伪随机数序列.
实际上,我做随机矩阵,所以我希望我的两个程序生成:
A = randn(dim,dim)
H = (A + A')/sqrt(2)
Run Code Online (Sandbox Code Playgroud)
相同的H矩阵
我已经在文档和论坛中徘徊了一段时间,我还没有找到一个内置的方法/函数来完成删除数组中元素的简单任务.有这样的内置功能吗?
我要求相当于python的list.remove(x).
这是一个天真地从框中选择一个函数的例子:
julia> a=Any["D","A","s","t"]
julia> pop!(a, "s")
ERROR: MethodError: `pop!` has no method matching
pop!(::Array{Any,1}, ::ASCIIString)
Closest candidates are:
pop!(::Array{T,1})
pop!(::ObjectIdDict, ::ANY, ::ANY)
pop!(::ObjectIdDict, ::ANY)
...
Run Code Online (Sandbox Code Playgroud)
这里提到使用 deleteat!
,但也不起作用:
julia> deleteat!(a, "s")
ERROR: MethodError: `-` has no method matching -(::Int64, ::Char)
Closest candidates are:
-(::Int64)
-(::Int64, ::Int64)
-(::Real, ::Complex{T<:Real})
...
in deleteat! at array.jl:621
Run Code Online (Sandbox Code Playgroud) 因为在http://julia.readthedocs.org/en/latest/manual/modules/中没有关于模块的信息,我想问下面的内容.
我想通过ijulia尝试两个模块.这两个模块都在我的工作目录中作为name-of-files.jul.我将一般称它们为module_1.jul和module_2.jul.
module_1.jul使用module_2.jul并加载它
using module_2
Run Code Online (Sandbox Code Playgroud)
在ijulia会议上,如果我尝试
using module_1
Run Code Online (Sandbox Code Playgroud)
给出错误.我也试过了
include("module_1.jul")
Run Code Online (Sandbox Code Playgroud)
执行后的最后一句话会引发错误,因为module_1.jul找不到我知道包含在module_1.jul中的变量"x"(在这种情况下我使用include("module2.jul")"加载"模块module_1.jul
当我在朱莉娅中使用正常数字时,我注意到在数值模拟中我的数据中有一个模式.
我有一组随机矩阵.为了使我的计算可重现,我设置了srand
每个实现的功能.也就是说,每次我使用函数时我都用randn(n,n)
它初始化它srand(j)
,其中j
是实现的数量.
我想知道正常数字是如何生成的,如果它有意义我做了什么,我会引入偶然的相关性.
我想减少子图之间的垂直间距.在网上冲浪我刚刚发现了如何减少水平间距,就像这样
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=4, ncols=4)
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
fig.subplots_adjust(hspace=0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)
hspace是操纵这种行为的东西,但显然没有vspace.
编辑:
这不会减少y轴之间的空间,这就是我想要操纵的空间.
我在julia中有一个泛型函数,目的是说给定维度的向量的成员是否为负数.经过一些变化,我有:
function any(vec)
dim = size(vec)
for i in 1:dim[2]
fflag = vec[1,i] < 0
println("Inside any, fflag = ", fflag)
if fflag == true
result = 0
println("blabla ", result)
break
else
result =1
println("blabla ", result)
continue
end
end
println("hey, what is result? ")
println(result)
return result
end
Run Code Online (Sandbox Code Playgroud)
如果我运行测试,我发现以下结果:
Inside any, fflag = false
blabla 1
Inside any, fflag = false
blabla 1
Inside any, fflag = false
blabla 1
hey, what is result?
result not defined
at …
Run Code Online (Sandbox Code Playgroud) 考虑一个列表[1,1,1,...,1,0,0,...,0]
(零和一的任意列表)。我们想要这个数组中所有可能的排列,会有binomial(l,k)
排列(l
代表列表的长度和列表k
中的数量)。
现在,我已经测试了三种不同的算法来生成整个可能的排列,一种使用循环函数,一种通过计算区间数[1,...,1,0,0,...,0]
来计算排列[0,0,...0,1,1,...,1]
(因为这可以看作是一个二进制数区间),还有一种使用字典顺序计算排列。
到目前为止,当排列大约为 时,前两种方法的性能失败。32. 词典编排技术仍然很好(只需几毫秒即可完成)。
我的问题是,特别是对于 julia,哪种是我之前描述的计算排列的最佳方法?我对组合学不太了解,但我认为下降基准是从总数中生成所有排列binomial(l,l/2)
很简单,我想使用该函数将字符转换为整数ord
,但是它不会自动加载到前奏中,因为它说:
*Main> ord 'a'
<interactive>:55:1:
Not in scope: ‘ord’
Perhaps you meant one of these:
‘odd’ (imported from Prelude), ‘or’ (imported from Prelude)
Run Code Online (Sandbox Code Playgroud)
为了天堂的缘故,我怎么能用它?
我在为朱莉娅建造POE乐团时遇到了麻烦.我正在关注这篇论文和其他论文的一部分.
在朱利亚,我计算:
X = randn(dim, dim)
Q, R = qr(X)
Q = Q*diagm(sign(diag(R)))
ij = (irealiz-1)*dim
phases_ens[1+ij:ij+dim] = angle(eigvals(Q))
Run Code Online (Sandbox Code Playgroud)
dim
矩阵维度在哪里,irealiz
只是实现总数的索引.
我对Q的阶段感兴趣,因为我希望Q是具有适当Haar测量的正交矩阵.如果dim=50
和实现的总数是100000
,并且由于我正在纠正Q,我应该期望一个平坦的phases_ens
分布.然而,除了零和pi处的峰值之外,我获得了平坦的分布.代码有问题吗?
假设您绘制一组数据:
plt.plot(x,y, marker='.', label='something')
plt.legend()
Run Code Online (Sandbox Code Playgroud)
在显示屏上,您将获得. something
,但是如何将其更改为- something
,以便图例中出现的标记是一条线而不是点?