一个非常基本的问题,我有一个模块可以动态创建目录,但是,有时我想在一个目录中放置多个文件.如果发生这种情况,python会出现异常并说已经创建了dir,我该如何避免这种情况并检查dir是否已经创建?
保存模块看起来像这样:
def createdirs(realiz):
# Create all the necessary directories
path = "./doubDifferences_probandamp_realiz%d/"%realiz
os.mkdir(path,0755)
directory = os.path.split(path)[0]
return directory
Run Code Online (Sandbox Code Playgroud)
在主程序上,我有这个:
for realiz in range(1,1000):
for i in range(dim):
for j in range(i+1,i+4):
...
dirspaths = mod_savefile.createdirs(realiz)
Run Code Online (Sandbox Code Playgroud) 我使用以下脚本生成一个简单的eps图像:
set terminal epslatex 8
set output 'sample1.tex'
set size 0.75,0.75
set xrange [-pi:pi]
set yrange [0:1.2]
set xlabel "$x$"
set ylabel "$y$"
plot sin(x)*sin(x) title "$\\sin^2(x)$"
Run Code Online (Sandbox Code Playgroud)
但是,当我在gnuplot中运行它时
gnuplot> load "sample.gpi"
Run Code Online (Sandbox Code Playgroud)
我得到一张空白图片,只显示没有数字的网格.有什么建议我做错了什么?
我必须应用一些我在python中编写的数学公式:
for s in range(tdim):
sum1 = 0.0
for i in range(dim):
for j in range(dim):
sum1+=0.5*np.cos(theta[s]*(i-j))*
eig1[i]*eig1[j]+eig2[i]+eig2[j])-0.5*np.sin(theta[s]*(i-j))*eig1[j]*eig2[i]-eig1[i]*eig2[j])
PHi2.append(sum1)
Run Code Online (Sandbox Code Playgroud)
现在,这是正确的,但显然效率低下,另一种方法是:
for i in range(dim):
for j in range(dim):
PHi2 = 0.5*np.cos(theta*(i-j))*(eig1[i]*eig1[j]+eig2[i]+eig2[j])-0.5*np.sin(theta*(i-j))*(eig1[j]*eig2[i]-eig1[i]*eig2[j])
Run Code Online (Sandbox Code Playgroud)
但是,第二个例子在PHi2的所有元素中给出了相同的数字,所以这个更快但答案是错误的.你怎么能正确而有效地做到这一点?
注意:eig1和eig2具有相同的尺寸d,θ和PHi2的尺寸D相同,但是d!= D.
我刚刚将包RandomMatrices.jl下载到julia,因为我需要计算Tracy-Widom密度.然而,文档并没有帮助我理解它的含义:
immutable TracyWidom <: ContinuousUnivariateDistribution
end
Run Code Online (Sandbox Code Playgroud)
这个TracyWidom名字是什么类型的?我应该提供什么才能使用该功能进行一些测试
pdf(d::TracyWidom, t::Real)
Run Code Online (Sandbox Code Playgroud)
包含在TracyWidom.jl中?
我想了解我在朱莉娅的程序发生了什么。问题如下:我有一个对称非负矩阵,我使用它对角化
egvals, egvecs = eig(H_mat)
Run Code Online (Sandbox Code Playgroud)
根据定理,我的矩阵应该具有与非负特征向量相关的最大特征值。H_mat 还有一个技巧,它的第一列和第一行都有一个填充零的条目。
对角化产生最大正特征值 E_max,实际上它是最后一个特征值,因为 Julia 按顺序排列特征值直至最大,但我与 E_max 相关的特征向量的所有条目并非为零或正(即它们具有负条目)
egvecs[:,end] # Some or several components ii, egvecs[ii,end]<0
Run Code Online (Sandbox Code Playgroud)
这是我没有得到正确结果的矩阵,例如:
[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 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 2.0 0.0 0.0 1.414213562373095 0.0 0.0 0.0 0.0 0.0 1.414213562373095 0.0 0.0 0.0 0.0 0.0 0.0 …Run Code Online (Sandbox Code Playgroud) 我一直在冲浪,但没有找到正确的方法来执行以下操作.
我用matplotlib完成了直方图:
hist, bins, patches = plt.hist(distance, bins=100, normed='True')
Run Code Online (Sandbox Code Playgroud)
从图中,我可以看到分布或多或少是指数(泊松分布).考虑到我的hist和bin数组,我怎样才能做到最佳拟合?
UPDATE
我使用以下方法:
x = np.float64(bins) # Had some troubles with data types float128 and float64
hist = np.float64(hist)
myexp=lambda x,l,A:A*np.exp(-l*x)
popt,pcov=opt.curve_fit(myexp,(x[1:]+x[:-1])/2,hist)
Run Code Online (Sandbox Code Playgroud)
但我明白了
---> 41 plt.plot(stats.expon.pdf(np.arange(len(hist)),popt),'-')
ValueError: operands could not be broadcast together with shapes (100,) (2,)
Run Code Online (Sandbox Code Playgroud) 我被困在这段代码上
hdiag = zeros(Float64,2)
hdiag = [0,0]
println(hdiag)
hdiag[1] = randn()
Run Code Online (Sandbox Code Playgroud)
在最后一行我获得了一个InexactError.这很奇怪因为randn()它是一个Float64,但由于某种原因我必须这样做hdiag=randn(2),然后应该没有问题.
有谁知道如何在 matplotlib 中轻松实现 3d 条形图的颜色图?
考虑这个例子,我如何根据颜色图更改每个条形?例如,短条应该以蓝色为主,而较高的条则将颜色从蓝色渐变为红色......
我正在尝试获得最新的朱莉娅主提交.我通过git clone安装它,但是,当我这样做时
$ git push
Run Code Online (Sandbox Code Playgroud)
它返回一个异常:
fatal: remote error: You can't push to git://github.com/JuliaLang/julia.git
Use https://github.com/JuliaLang/julia.git
Run Code Online (Sandbox Code Playgroud)
如果我使用给定的选项,git需要我一个密码.
当我保存我的数据文件时,我有一个参数,它是一个浮点数,我想把它作为文件名中的浮点数.我没有舍入错误,因为我使用定义参数的值
parameters = zeros(Float64, 1000)##50)
iijj = 4.8999
for jjj in 1:1000
iijj += 1/10000
iijj = round(iijj, 4)
parameters[jjj] = iijj
end
Run Code Online (Sandbox Code Playgroud)
因此每个parameter[i]都是一个只有4小数的浮点数.打印文件时出现问题,我正在使用
printfile = open("outfile_param$(param).dat" ,"w")
Run Code Online (Sandbox Code Playgroud)
哪里param=parameters[i].如果我有,例如4.89,我想有名字outfile_param4.8900.dat,而不是outfile_param4.89.dat.
我知道有几种方法可以在输出文件中写入,但我想保留我所拥有的格式,因为如果不是,那么纠正我使用的程序会很麻烦.
julia ×5
python ×3
matplotlib ×2
github ×1
gnuplot ×1
latex ×1
matrix ×1
numpy ×1
optimization ×1
pandas ×1
python-2.7 ×1
scipy ×1