小编Ger*_*Ger的帖子

Fortran,派生数据类型中的参数和静态表

我想创建一个派生数据类型,其中包含一个表和该表的长度.理想情况下,我想声明如下

type mydata
    integer                :: ndata
    real, dimension(ndata) :: x
end type mydata
Run Code Online (Sandbox Code Playgroud)

但是在开始时ndata是未知的,因此x是动态表.

我必须使用allocatablex并在知道ndata时分配它吗?

type mydata
    integer                         :: ndata
    real, dimension(:), allocatable :: x
end type mydata

....

type(mydata) :: var
var % ndata = 10
allocate(var % x(10))
Run Code Online (Sandbox Code Playgroud)

管理此类案件的最佳方法是什么?

fortran derived-types

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

如何在pygments中安装新的lexer?

我为pygments编写了一个新的词法分析器,并尝试使用它。因此我看这个页面

http://pygments.org/docs/lexerdevelopment/

描述安装过程的位置。他们说可以,make mapfiles但我不知道在哪里。

我查看了这两个目录,那里有他们谈论的other.py模块。

/usr/share/pyshared/pygments/lexers/
Run Code Online (Sandbox Code Playgroud)

/usr/share/pyshared/pygments/lexers/
Run Code Online (Sandbox Code Playgroud)

但是那里没有任何makefile。因此,我该怎么办?

pygments

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

在子例程中将函数作为参数传递时出现分段错误

我试图说明如何将函数传递给Newton Raphson过程.我成功了一个非常简单的函数(unefonction见下文)但它不适用于有参数的函数.这第二个fonction叫gaussienne,它需要一个参数,x和两个可选参数musig.在我的牛顿拉夫森程序中,我用这种方式调用了这个函数:f(x).什么是奇怪,我是在执行过程中,程序操作,就好像可选参数sigmu存在,但他们不...因此我不明白...

这是包含这些功能的模块

module fonction

  implicit none

  ! parametre pour la gaussienne
  double precision :: f_sigma = 1.d0, f_mu = 0.d0

  ! pi accessible uniquement en interne
  double precision, parameter :: pi = 3.14159265359d0

  contains

    double precision function unefonction(x)
        ! fonction : unefonction
        ! renvoie
        !    $\frac{e^x - 10}{x + 2}$

        implicit none

        ! arguments 
        double precision, intent(in) :: x

        unefonction = (exp(x) - 10.) / …
Run Code Online (Sandbox Code Playgroud)

fortran

2
推荐指数
1
解决办法
1668
查看次数

从函数创建Python对象

我的问题可能更多地与OOP相关而不是python.我写了一个类来描述一个分子,然后我写了一个函数,以便从特定的文件格式创建一个分子对象:fromFILE.因此,例如,当我使用我的课时,我会执行以下操作:

import mymodule
mol = mymodule.fromFILE("toto")
mol.method()
...
Run Code Online (Sandbox Code Playgroud)

我的问题是组织事物的好方法是什么.函数fromFILE()是否属于类的一部分,如果是,那么写这个的最佳方法是什么?

到目前为止,我只是将类和可用于创建此类的函数放入同一个模块中,但我不知道这是否是最好的方法.

python oop

2
推荐指数
1
解决办法
109
查看次数

webdav 文件夹上的 rsync 不起作用

我尝试在我的 PC 上的 webdav 文件夹(box 帐户)上同步本地文件夹的 pdf 文件。我用 : 安装了那个文件夹davs://dav.box.com/dav。我在 ubuntu 14.04

rsync -avu --include="*/" --include="*.pdf" --exclude="*" L2/ /run/user/1000/gvfs/dav:host=dav.box.com,ssl=true/dav/Cours/ 
Run Code Online (Sandbox Code Playgroud)

上面的 rsync 命令在 webdav 文件夹中创建了目录树,但它不复制任何文件。

我有很多:

rsync: failed to set times on "/run/user/1000/gvfs/dav:host=dav.box.com,ssl=true/dav/Cours/SymCristalline": Operation not supported (95)
rsync: failed to set times on "/run/user/1000/gvfs/dav:host=dav.box.com,ssl=true/dav/Cours/SymCristalline/Cours": Operation not supported (95)
...
Run Code Online (Sandbox Code Playgroud)

然后我得到了我想要同步的文件列表。

SymCristalline/
SymCristalline/TD_2013.pdf
SymCristalline/blanche.pdf
SymCristalline/inter_tables_of_crist__vol_a.pdf
SymCristalline/inter_tables_of_crist__vol_d.pdf
....
Run Code Online (Sandbox Code Playgroud)

然后我得到了很多

rsync: mkstemp "/run/user/1000/gvfs/dav:host=dav.box.com,ssl=true/dav/Cours/SymCristalline/.TD_2013.pdf.tgEY8n" failed: Operation not supported (95)
rsync: mkstemp "/run/user/1000/gvfs/dav:host=dav.box.com,ssl=true/dav/Cours/SymCristalline/.blanche.pdf.tZ2XyK" failed: Operation not supported (95)
....
Run Code Online (Sandbox Code Playgroud)

最后:

sent 93,577,889 bytes  received …
Run Code Online (Sandbox Code Playgroud)

rsync webdav

2
推荐指数
1
解决办法
4741
查看次数

关于boxplot胡须计算与numpy或matplotlib

我试图在matplotlib中计算箱形图的胡须和框坐标.我不明白我的错误以及为什么我不计算相同的值.

Q1, median, Q3 = np.percentile(becher, [25, 50, 75])
IQR = Q3 - Q1
Qs = [Q1, median, Q3, Q1 - 1.5 * IQR, Q3 + 1.5 * IQR]
Qname = ["Q1", "median", "Q3", "Q1-1.5xIQR", "Q3+1.5xIQR"]
for Q, name in zip(Qs, Qname):
    plt.axhline(Q, color="k")
    plt.text(1.52, Q, name)
plt.boxplot(becher)
Run Code Online (Sandbox Code Playgroud)

如下图所示,Q1,Q3和中位数都可以.但胡须是错的.

在此输入图像描述

这是我的数据:

becher = [9.1495,
 9.9479,
 9.7933,
 9.8002,
 8.47,
 9.14,
 9.06,
 9.6933,
 9.7871,
 10.5676,
 9.7441,
 10.4874,
 7.9584,
 7.9598,
 8.3483,
 7.2536,
 9.0823,
 10.8343,
 10.4104,
 7.2004,
 9.6297,
 9.96,
 9.761,
 9.684,
 8.6062,
 10.2098,
 8.9002,
 8.4511, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib boxplot

2
推荐指数
1
解决办法
1906
查看次数

如何更新anaconda发行版和python软件包?

我在OS X系统上安装了anaconda发行版。

如果查看随anaconda导航器安装的软件包,我会发现很多软件包都可以升级。如果我升级其中之一,则列表中将带有anaconda软件包,其中包含版本custum。如果我升级了此软件包,我会回到以前升级的软件包的先前版本。

此后,我遵循了文档的这一页。

--> conda update conda
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /blabla/anaconda:

The following packages will be UPDATED:

    anaconda: 4.2.0-np111py35_0 --> custom-py35_0
    conda:    4.2.13-py35_0     --> 4.2.14-py35_0
    requests: 2.11.1-py35_0     --> 2.12.4-py35_0

Proceed ([y]/n)? y
...
[      COMPLETE      ]

--> conda update anaconda
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /blabla/anaconda:

The following packages will be UPDATED:

    anaconda: custom-py35_0 --> …
Run Code Online (Sandbox Code Playgroud)

python anaconda conda

2
推荐指数
1
解决办法
9690
查看次数

Matplotlib:如何获得子图的三角矩阵?

我想将一组子图分成三行,第一行有一个子图,第二行有两个,第三行有三个。我做了以下事情:

fig, axes = plt.subplots(figsize=(10, 10), sharex=True, sharey=True, ncols=3, nrows=3)
x = np.linspace(0, 10, 100)
for i in range(3):
    for j in range(0, i+1):
        axes[i, j].plot(x, np.sin((i+j) *x))
Run Code Online (Sandbox Code Playgroud)

因此我得到: 在此处输入图片说明

如何删除三个空地块?

python matplotlib subplot

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