我有以下简单的脚本绘制图表:
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中有一种简单的方法吗?我找到了一些教程,但它们看起来都相当复杂.
我正在努力学习如何有效地使用Git,我想知道我应该如何(良好做法/不良做法?)解决以下案例:
假设我在master中有以下提交链:
然后我意识到在最后两次提交中完成的操作是完全错误的,我需要再次从Commit 1开始.问题:
我有一个项目,我正在使用Doxygen来生成文档.这些类的文档很好,但我也有一些函数,我在main()中使用它来创建对象等.我也想将这些函数放入我的文档中,但我还没有想到如何做到这一点.有什么建议?
我有一些朋友可能有兴趣学习使用版本控制系统来完成即将到来的硕士论文(Latex文档和各种编程).我不是在谈论任何大而复杂的东西,只是用它来备份,查看旧版本和一些基本的分支和合并.
但是,我认为选择一个对初学者来说有点容易学习的东西是个好主意.所以问题是,你会向那些不熟悉这些东西的人推荐哪个版本控制系统?
就个人而言,我一直在使用Git和Mercurial,目前我认为我倾向于Mercurial.我没有尝试过Bazaar.
到目前为止,这是我对适合新用户的功能的印象:
水银
优点:
缺点:
混帐
优点:
缺点:
市场
没试过......
我在远程计算机上测试对源代码的更改的工作流程如下:
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废弃的文件?
更新:修改错误的代码,如果有人对它感兴趣的话作为例子
我试图在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 示例之一(请参阅文章末尾的源代码):
问题:
class(Shape), pointer :: thisas 结果为抽象类 Shape 定义一个构造函数,而无需分配指针。这是在 Fortran 中为抽象类定义构造函数的正确方法吗?更新了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) 我打算编写一个程序来绘制连接到计算机的传感器的数据.传感器值将作为时间的函数绘制(y轴上的传感器值,x轴上的时间).我希望能够实时地为情节添加新值.用C++做什么最好?
编辑:顺便说一下,该程序将在Linux机器上运行
我在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"的字符串为空.为什么是这样?