小编Pau*_*aul的帖子

使用PyPlot绘制平滑线

我有以下简单的脚本绘制图表:

import matplotlib.pyplot as plt
import numpy as np

T = np.array([6, 7, 8, 9, 10, 11, 12])
power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00])

plt.plot(T,power)
plt.show()
Run Code Online (Sandbox Code Playgroud)

就像现在一样,这条直线从一点到另一点直线看起来不错,但在我看来可能更好.我想要的是平滑点之间的界限.在Gnuplot,我会用smooth cplines.

在PyPlot中有一种简单的方法吗?我找到了一些教程,但它们看起来都相当复杂.

python plot matplotlib curvesmoothing

104
推荐指数
6
解决办法
15万
查看次数

使用git将提交从master移到分支上

我正在努力学习如何有效地使用Git,我想知道我应该如何(良好做法/不良做法?)解决以下案例:

假设我在master中有以下提交链:

  • 初始提交
  • 承诺1
  • 承诺2
  • 承诺3

然后我意识到在最后两次提交中完成的操作是完全错误的,我需要再次从Commit 1开始.问题:

  • 我该怎么办?
  • 我可以将Commit 2和3移动到一个单独的分支以备将来参考(毕竟它们并不是那么糟糕)并继续在master上使用Commit 1吗?

git commit git-reset git-branch

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

在Python中获取计算机的UTC偏移量

在Python中,如何找到计算机设置的UTC时间偏移量?

python timezone utc

47
推荐指数
3
解决办法
4万
查看次数

使用Doxygen在C++中记录函数

我有一个项目,我正在使用Doxygen来生成文档.这些类的文档很好,但我也有一些函数,我在main()中使用它来创建对象等.我也想将这些函数放入我的文档中,但我还没有想到如何做到这一点.有什么建议?

c++ doxygen non-member-functions

28
推荐指数
3
解决办法
4万
查看次数

Git,Hg或Bzr - 向新用户推荐哪个?

我有一些朋友可能有兴趣学习使用版本控制系统来完成即将到来的硕士论文(Latex文档和各种编程).我不是在谈论任何大而复杂的东西,只是用它来备份,查看旧版本和一些基本的分支和合并.

但是,我认为选择一个对初学者来说有点容易学习的东西是个好主意.所以问题是,你会向那些不熟悉这些东西的人推荐哪个版本控制系统?

就个人而言,我一直在使用Git和Mercurial,目前我认为我倾向于Mercurial.我没有尝试过Bazaar.

到目前为止,这是我对适合新用户的功能的印象:

水银

优点:

  • 修订编号
  • 很容易签出旧的提交,处理它并将其合并
  • 使用mergetool直接轻松合并
  • 易分支(?)
  • 很好的插件,如glog

缺点:

  • 分支和书签都可以用于Git所谓的分支 - 可能有点令人困惑
  • 在执行命令时,不会提供有关执行/错误的信息

混帐

优点:

  • 完全控制(至少给人一种印象)
  • 出现问题时的详细帮助和信息

缺点:

  • 一些困难的概念(如临时区域)
  • 一些分支操作可能有点困难

市场

没试过......

你怎么看?在回答时请遵循这里良好主观准则.

git version-control mercurial bazaar

11
推荐指数
4
解决办法
2317
查看次数

在p4还原后删除新文件

我在远程计算机上测试对源代码的更改的工作流程如下:

1)在本地机器上:搁置我想要测试的更改

2)在远程机器(ssh)上:

$ p4 revert //... 
$ p4 sync
$ p4 unshelve -s <changelist number>
$ ./run_test_scripts
Run Code Online (Sandbox Code Playgroud)

当我只对已经存在的文件进行更改时,这似乎工作正常.如果我添加了新文件,这些文件将在期间创建p4 unshelve,但不会在期间删除p4 revert.文档说这是什么p4 revert,所以它不是意料之外的,但如果我想再次测试相同的文件会导致一些问题:

$ p4 revert //... 
<some file>#none - was add, abandoned
$ p4 sync
File(s) up-to-date.
$ p4 unshelve -s <changelist number>
Can't clobber writable file <some file>
Run Code Online (Sandbox Code Playgroud)

有没有办法可以删除Perforce废弃的文件?

perforce

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

Fortran中的扩展对象数组

更新:修改错误的代码,如果有人对它感兴趣的话作为例子

我试图在Fortran中获得OOP,但遇到了一些问题.任何帮助将受到高度赞赏:

我想存储指向由数组中的抽象类扩展的对象的指针,然后调用这些对象的一个​​抽象子例程.但是我得到一个编译错误,我正在尝试调用子例程:

src/Body_set.f90(74): error #6553: A function reference is invoking a subroutine subprogram.   [GET_MASS]
        write(*,*) "Body ", i, " - mass: ", b%get_mass()
----------------------------------------------^
src/Body_set.f90(74): error #6402: prPromoteSym : Illegal KIND & CLASS mix   [GET_MASS]
        write(*,*) "Body ", i, " - mass: ", b%get_mass()
----------------------------------------------^
src/Body_set.f90(74): error #7021: Name invalid in this context   [GET_MASS]
        write(*,*) "Body ", i, " - mass: ", b%get_mass()
----------------------------------------------^
compilation aborted for src/Body_set.f90 (code 1)
Run Code Online (Sandbox Code Playgroud)

我在Body.f90中有一个带有两个延迟过程的抽象类:

module Body_module
   implicit none
   private …
Run Code Online (Sandbox Code Playgroud)

oop fortran

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

在 Fortran 中调用抽象基类的构造函数

考虑经典的 OOP 示例之一(请参阅文章末尾的源代码):

  • 抽象基类Shape
  • 类 Rectangle 扩展形状

问题:

  1. 在下面的源代码中,我尝试使用class(Shape), pointer :: thisas 结果为抽象类 Shape 定义一个构造函数,而无需分配指针。这是在 Fortran 中为抽象类定义构造函数的正确方法吗?
  2. 如何在扩展类(Rectangle)的构造函数中调用基类(Shape)的构造函数?

示例源代码

更新了Ed Smith 的建议,该建议适用于非抽象基类。

module Shape_mod
    implicit none

    private
    public Shape

    type, abstract :: Shape
        private
        double precision :: centerPoint(2)
    contains
        procedure :: getCenterPoint
        procedure(getArea), deferred :: getArea
    end type Shape

    interface Shape
        module procedure constructor
    end interface Shape

    abstract interface 
        function getArea(this) result(area)
            import
            class(Shape), intent(in) :: this
            double precision :: area
        end function getArea
    end interface …
Run Code Online (Sandbox Code Playgroud)

oop fortran

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

实时绘图/数据记录

我打算编写一个程序来绘制连接到计算机的传感器的数据.传感器值将作为时间的函数绘制(y轴上的传感器值,x轴上的时间).我希望能够实时地为情节添加新值.用C++做什么最好?

编辑:顺便说一下,该程序将在Linux机器上运行

c++ plot real-time

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

使用f2py将文本字符串从fortran子例程返回到python

我在Fortran中有这个简单的模块:

test.f90:

module test
   implicit none
contains

   subroutine foo(chid)
      implicit none
      character(len=*),intent(out):: chid          ! char. identifier
      chid = "foo"
   end subroutine foo
end module test

program bar
   use test
   character(len=20) text
   call foo(text)
   write(*,*) text
end program bar
Run Code Online (Sandbox Code Playgroud)

编译它(在Windows上)gfortran test.f90 -o test.exe并运行它,如预期的那样:

 foo
Run Code Online (Sandbox Code Playgroud)

我也可以使用f2py编译它: c:\Python27\python.exe c:\Python27\Scripts\f2py.py --fcompiler=gnu95 --compiler=mingw32 -c -m test \test.f90

当我运行这个Python脚本时:

test.py:

from id_map import test

print "This should be 'foo':"
print test.foo()
print "was it?"
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

This should be 'foo':

was it?
Run Code Online (Sandbox Code Playgroud)

如您所见,应为"foo"的字符串为空.为什么是这样?

python fortran f2py

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