小编nor*_*rio的帖子

如何计算NumPy bool数组中真实元素的数量

我有一个布尔类型的NumPy数组'boolarr'.我想计算其值为的元素数量True.是否有专门用于此任务的NumPy或Python例程?或者,我是否需要迭代脚本中的元素?

python arrays boolean numpy count

162
推荐指数
3
解决办法
19万
查看次数

如何使用opam安装特定版本的ocaml编译器

如何使用opam(或其他包管理器)安装特定版本的ocaml编译器(和兼容包)?

我快速浏览了一下opam文档,但是没有找到相关信息.

我需要ocaml编译器(最好是本机代码编译器)来构建unison,一个用于文件同步的软件.我需要使用相同版本的ocaml在两台机器上构建unison,否则unison会发出错误并中止其职责(yiiii!).

我尝试从tar球构建ocaml版本4.04.0,然后使用它来构建unison,但在其中一台机器上,unison的构建失败并显示错误消息,

make[1]: Entering directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
ocamlc -o mkProjectInfo unix.cma str.cma mkProjectInfo.ml
File "mkProjectInfo.ml", line 1:
Error: Error while linking /home/norio/Downloads/unison/ocaml_for_unison/lib/ocaml/unix.cma(Unix):
The external function `unix_has_symlink' is not available
if [ -f `which etags` ]; then \
    etags *.mli */*.mli *.ml */*.ml */*.m *.c */*.c *.txt \
          ; fi 
make[1]: Leaving directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
Run Code Online (Sandbox Code Playgroud)

我不想出发寻求unix_has_symlink功能,并致力于探索图书馆依赖的沼泽,许多开发人员在文明来临之前已经倒下,并且发明了包裹管理者.

有没有什么, opam install ocamlc-4.04opam install all-packages


附录

unix_has_symlink在运行Linux Mint 18 Cinnamon 64 bit的计算机上观察到错误消息.这个函数是某个unix/linux库的一部分,而不是ocaml包吗?

symlink ocaml package-managers unison opam

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

Fortran读取语句超出了行尾

你知道以下声明是否可以通过fortran 90/95/2003标准之一保证真实吗?"假设一个字符变量的read语句被赋予一个空行(即只包含空格和换行符号).如果格式说明符是星号(*),它继续读取后续行,直到非空白如果格式说明符为'(A)',则将空字符串替换为字符变量."

例如,请查看以下最小程序和输入文件.

程序代码:

PROGRAM chk_read
  INTEGER,         PARAMETER :: MAXLEN=30
  CHARACTER(len=MAXLEN)      :: str1, str2

  str1='minomonta'
  read(*,*)     str1
  write(*,'(3A)')  'str1_start|', str1, '|str1_end'

  str2='minomonta'
  read(*,'(A)') str2
  write(*,'(3A)')  'str2_start|', str2, '|str2_end'

END PROGRAM chk_read
Run Code Online (Sandbox Code Playgroud)

输入文件:

----'input.dat' content is below this line----

yamanakako

kawaguchiko    
----'input.dat' content is above this line----
Run Code Online (Sandbox Code Playgroud)

请注意,'input.dat'中有四行,第一行和第三行是空白的(仅包含空格和换行符).如果我运行程序为

$ ../chk_read < input.dat > output.dat 
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

----'output.dat' content is below this line----
str1_start|yamanakako                    |str1_end
str2_start|                              |str2_end
----'output.dat' content is above this line----
Run Code Online (Sandbox Code Playgroud)

变量'str1'的第一个读语句似乎是查看'input.dat'的第一行,找到一个空行,移到第二行,找到字符值'yamanakako',并将其存储在'str1'中".

相反,变量'str2'的第二个read语句似乎给出了第三行,它是空白的,并将空行存储在'str2'中,而不是移到第四行.

我尝试用英特尔Fortran(ifort 12.0.4)和GNU Fortran(gfortran 4.5.0)编译程序并得到相同的结果.

稍微讨论一下这个问题的背景:我正在编写一个子程序来读取一个使用空行作为数据块分隔符的数据文件.我想确保在读取数据时丢弃空白行,只留下空白行.我还需要使其标准符合和便携.

谢谢你的帮助.

io file-io standards fortran

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

模块使用语句中的Fortran内在关键字

intrinsic关键字添加到use模块的语句中意味着什么,如下例所示?

  use, intrinsic :: iso_c_binding
Run Code Online (Sandbox Code Playgroud)

(来自 7.1 Fortran接口概述,FFTW 3.3.6-pl1)

是否指定应该使用随编译器提供的该名称的模块,即使用户编写了另一个同名模块?

fortran fortran2003 fortran-iso-c-binding

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

Linux上所有用户的matlab搜索路径

如何在Linux系统上为所有用户添加Matlab搜索路径?

我正在管理一个由几个人共享的Linux计算机.我想在路径上放置一些Matlab*.m文件(例如,/ usr/local/matlab/our_matlab_scripts /),每个人都有读访问权限.我还想将此路径添加到所有用户的Matlab搜索路径中,以便他们可以立即开始使用Matlab文件.

作为单个用户,我了解到我可以通过Matlab'addpath'命令或Matlab的文件菜单添加搜索路径.但是,到目前为止,我找不到一种方法可以立即作为所有当前和未来用户的管理员.

如果你能善意地教我,我将不胜感激.

linux matlab admin

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

通过matplotlib中的箭头连接轴中的点和另一个轴中的另一个点

使用matplotlib,我正在制作一个包含两个Axes对象的图形(即两组xy轴).我想连接两个点 - 一个从一个轴中拾取,另一个从另一个轴中拾取---通过箭头或线.

我试图通过使用annotate()函数和ConnectionPatch对象来做到这一点,但在两种方式中,箭头的一部分被轴的"框架"隐藏.请参阅附图,其中我尝试通过ConnectionPatch对象连接两个轴的原点.

我还附加了用于生成图形的脚本.

有没有办法"提前"箭头(或将轴框架推到后面)?

试图连接两个轴的原点.

#!/usr/bin/python
# 
# This script was written by Norio TAKEMOTO 2012-5-7


import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch

# creating a figure and axes.
fig=plt.figure(figsize=(10,5))

ax1=plt.axes([0.05,0.15,0.40,0.80])

plt.xticks([0])
plt.yticks([0])
plt.xlim((-1.23, 1.23))
plt.ylim((-2.34, 2.34))


ax2=plt.axes([0.60,0.15, 0.30, 0.30])

plt.xticks([0])
plt.yticks([0])
plt.xlim((-3.45, 3.45))
plt.ylim((-4.56, 4.56))


# trying to connect the point (0,0) in ax1 and the point (0,0) in ax2
# by an arrow, but some part is hidden. I can't find a solution. Let's
# ask …
Run Code Online (Sandbox Code Playgroud)

python plot annotate matplotlib

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

用户定义类型的Fortran可分配数组成员

在下面的简单程序中,我陷入了派生类型的可分配数组成员的分段错误。此分段错误仅在我尝试过的一台计算机(在openSUSE上使用Intel Fortran 14.0.3)上,而在另一台计算机(在Ubuntu上使用Intel Fortran 14.0.2)上则没有。另外,如果我更改程序中的整数参数之一,程序将正常结束。

有人能重现这个问题吗?有人可以告诉我代码有什么问题吗?

以下是三个源代码文件。

main_dbg.f90 ..是否发生分段错误取决于n1and n2在此文件中的值。

PROGRAM dbg
  USE tktype
  USE mymodule, ONLY : MyClass, MyClass_constructor
  IMPLICIT NONE

  INTEGER(I4B)                :: n1,n2,n3
  TYPE(MyClass)               :: o_MyClass

  n1=23
  n2=32
  ! .. this does not work.
  ! n2=31 
  ! .. this works.
  n3 = n1*n2
  write(*,'(1X,A,I10)') 'n1=', n1
  write(*,'(1X,A,I10)') 'n2=', n2
  write(*,'(1X,A,I10)') 'n3=', n3

  o_MyClass = MyClass_constructor(n1, n2, n3) 

  call o_MyClass%destructor()
  write(*,*) '***************************'
  write(*,*) '   Normal End :)           '
  write(*,*) '***************************'

END PROGRAM dbg
Run Code Online (Sandbox Code Playgroud)

strange.f90 ..分段错误发生forall …

fortran memory-management segmentation-fault allocatable-array

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

我可以pip安装python3.6吗?

如果我有一个旧版本的python(例如python3.4)和pip这个版本的python,我可以通过pip安装更新版本的python(例如python3.6)吗?换句话说,我可以这样做吗?

pip install python3.6
Run Code Online (Sandbox Code Playgroud)

python pip virtualenv python-3.x

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

哪种方式具有更好的精度来计算矩阵矩阵向量积,AB u?

我想计算矢量,

s = AB u,

其中s和u是N维复矢量,A是N×M复合矩阵,B是M-by-N复矩阵.当A,B和u的元素表示为浮点数时,以下哪两种方法具有更好的准确度(更高有效位数)?

(1)首先计算B u.

首先进行矩阵向量乘法,

y = B u

然后,另一个矩阵 - 向量乘法

s = A y

(2)首先计算AB.

首先进行矩阵 - 矩阵乘法,

C = AB

然后,矩阵向量乘法

s = C u

有没有已知的一般规则?

顺便说一句,我知道方法(1)比方法(2)更有效.

floating-point linear-algebra significant-digits numerical-analysis matrix-multiplication

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

带有抽象类型组件的 Fortran 派生类型

在 fortran 2003 中,是否可以定义具有抽象类型组件的派生类型?例如,如下所示,我想定义一个Sup具有type组件o_AbstAbst类型。

TYPE, ABSTRACT :: Abst
 CONTAINS 
   PROCEDURE(some_proc), deferred, pass :: some_proc 
   ..
END TYPE Abst

TYPE :: Sup
   PRIVATE
   CLASS(Abst) :: o_Abst
   ..
 CONTAINS
   PROCEDURE :: another_proc
END TYPE Sup
Run Code Online (Sandbox Code Playgroud)

我已经遇到的一个问题是为Sup类型对象编写构造函数。我无法o_Abst通过内部赋值为组件赋值=(英特尔编译器说,“在内部赋值语句中,变量不应是多态的。”)。或者我不能为Abst类型对象编写构造函数,因为据我所知,如果传递的对象虚拟参数以外的参数是抽象类型,则无法正确覆盖延迟的类型绑定过程。

我也很高兴听到避免使用类似Sup. 如果使用抽象类型的组件来定义类型很诱人,那么一般有哪些替代策略?

oop abstract-class fortran design-patterns type-extension

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

Fortran 中复数的绝对值平方

Fortran 中有一个内在函数来计算复数|z|^2的平方模吗z

如果没有,是否有比以下更简单或更好的计算方法?

REAL(z, precision_specifier)**2 + AIMAG(z)**2
Run Code Online (Sandbox Code Playgroud)

math fortran arithmetic-expressions

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