小编Mig*_*uel的帖子

如何从命令行而不是GUI启动八度音程?

我最近使用Homebrew在我的Mac上安装了GNU Octave,当我输入 octavebash时,它打开了octave-gui窗口.Octave GUI看起来很不吸引人(至少在Mac上)所以我想使用命令行界面.我的修复是要建立一个永久的别名~/.bash_profile这是alias octave='octave --no-gui'.

对此有更持久的解决方案吗?也就是说,如何在不调用GUI而不是CLI的情况下开始使用八度音程?有没有一个解决方案,我不必通过使用别名来做到这一点.(并不是说使用别名是一个大问题,但我只想更好地修复在命令行上启动Octave.)

terminal command-line-interface octave

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

seq使用逗号作为小数分隔符

我注意到seq我的一台计算机上出现了一个奇怪的行为(Ubuntu LTS 14.04):它不使用点作为小数分隔符,而是使用逗号:

seq 0. 0.1 0.2
0,0
0,1
0,2
Run Code Online (Sandbox Code Playgroud)

我的另一台PC上相同版本的seq(8.21)给出了正常点(也是相同的Ubuntu版本).最奇怪的是,当我从第一台机器进入ssh时,我在远程机器上观察到同样的不良行为.即使是从冲突机器提交到远程机器上的作业调度程序(slurm)的bash脚本也存在这个问题.我很迷茫.为什么(以及如何!)发生这种情况?

ssh bash ubuntu seq slurm

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

在gnuplot中交换轴

我一直在想这个问题,它可能已经实现gnuplot但我无法在线查找信息.

当你有一个数据文件时,可以交换轴并将"虚拟变量",比如x,(在gnuplot的帮助术语中)分配给垂直轴:

plot "data" u 1:2 # x goes to horizontal axis, standard
plot "data" u 2:1 # x goes to vertical axis, exchanged axes
Run Code Online (Sandbox Code Playgroud)

但是,当您有一个函数时,您需要求助于参数函数来执行此操作.想象一下你想要绘制x =y²(与y =x²相反),然后(据我所知)你需要做:

set parametric
plot t**2,t
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这种情况下很好用.然而,我认为一种更灵活的方法是可取的,例如

plot x**2 axes y1x1 # this doesn't work!
Run Code Online (Sandbox Code Playgroud)

是上面实现的,还是有一种简单的方法可以使用y作为虚拟变量而不需要set parametric

gnuplot

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

在gnuplot中阻止评论

我有一个很长的gnuplot脚本.出于调试目的,我希望能够阻止此脚本的注释部分或使用"goto"语句.这可能吗?

我知道我可以用一个if声明:

if (1 == 2) {
commented-out-code
} else {
non-commented-out code
}
Run Code Online (Sandbox Code Playgroud)

这是唯一的解决方案吗?

gnuplot

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

通过中间计算机挂载远程文件系统(sshfs)

情况:

  • 我在machine1工作,我有root访问权限.从machine1我可以通过ssh 访问machine2(我是没有权限的用户).
  • 无法从machine1直接访问machine3(也没有权限的用户).我需要使用machine2的ssh连接来访问machine3.
  • 简而言之:machine1可以ssh到machine2但不能进入machine3.machine2可以ssh到machine3.

我想做的事:

  • 我想使用sshfs在machine1上安装位于machine3上的本地(自己)目录.

并发症:

  • sshfs在machine2上不可用.

如何才能做到这一点?

linux filesystems ssh sshfs remote-file-inclusion

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

gnuplot:分散数据集的等高线图

我有一个由 7 列和超过 800 万行组成的分散数据文件(数据文件)。我想绘制此数据的轮廓。我想绘制的列是第一个,第二个和最后一个(第七个),给出一个 2d 和 3d 绘图如下:

正视图:

正视图

边缘视图:

视野边缘

和简单的 3d:

3d 视图

从第二个图中可以看出,第一件事是这些点聚集在 2d 区域的特定位置,在 3d 图中可以看到最小值的同一区域。但是,其次,这些点随机分布在平面(第二个图)中,我想我不能使用矩阵表示来绘制 iso-z 的轮廓。

是否可以使用 gnuplotset contour basecntrparam levels做到这一点?

plot gnuplot

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

有没有一种简单的方法可以在gnuplot中获得带有黑色轮廓的点?

有没有一种简单的方法可以在gnuplot中获得带有黑色轮廓的点?我正在使用标准颜色填充点类型,例如:

set style line 3  lc rgb '#4682B4' pt 9 ps 0.65
Run Code Online (Sandbox Code Playgroud)

但我需要确保该剧情在黑白版本中也很容易阅读.黑色轮廓会有所帮助,我该如何添加它们?

gnuplot

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

Fortran 中的并行读取能否提高性能?

我有一个 fortran90 代码,(到目前为止)大部分时间都花在 I/O 上,因为需要读取非常大的数据文件(至少 1GB 及以上)。需要写入包含计算结果的较小但仍然很大的数据文件。相比之下,一些快速傅里叶变换和其他计算很快就能完成。我已经并行化 (OpenMP) 其中一些计算,但考虑到上述 I/O 问题,总体性能增益很小。

我目前的策略是立即读取整个文件:

open(unit=10, file="data", status="old")

do i=1,verylargenumber
  read(10,*) var1(i), var2(i), var3(i)
end do

close(10)
Run Code Online (Sandbox Code Playgroud)

然后执行操作var1等。我的问题是是否有一个合适的策略使用(最好是)OpenMP 来加速读取过程,特别是考虑到数据文件(如果有任何区别)都很大。

我可以在 Lustre 文件系统上运行这些计算,原则上这为并行 I/O 提供了优势,尽管常规文件系统的通用解决方案将受到赞赏。

我的直觉是这个问题没有解决办法,但我想确认一下。

parallel-processing fortran openmp fortran90 lustre

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

在多时隙模式下修改gnuplot中的边距对齐

我使用epslatex作为输出终端在多时隙模式下创建了两个图.两个图的y轴标记不同.第一个图的y轴范围为[0:45],第二个图的y轴范围为[-5e-008到4e-007].由于y轴标签的宽度不同,第二个图的宽度小于第一个图的宽度.我已经尝试了可用的缩放选项,但它们不起作用.是否可以编辑绘图,以便无论y轴范围如何,我都可以为两个绘图设置相同的宽度?

在此输入图像描述

gnuplot

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

使用scipy来最小化也采用非变分参数的函数

我想使用该scipy.optimize模块来最小化一个功能.假设我的功能是f(x,a):

def f(x,a):
 return a*x**2
Run Code Online (Sandbox Code Playgroud)

对于一个固定的a,我希望尽量减少f(x,a)关于x.

scipy我可以导入例如fmin功能(I有一个旧SciPy的:v.0.9.0),得到一个初始值x0,然后优化(文档):

from scipy.optimize import fmin
x0 = [1]
xopt = fmin(f, x0, xtol=1e-8)
Run Code Online (Sandbox Code Playgroud)

失败因为f有两个参数并且fmin只传递一个(实际上,我还没有定义a).如果我做:

from scipy.optimize import fmin
x0 = [1]
a = 1
xopt = fmin(f(x,a), x0, xtol=1e-8)
Run Code Online (Sandbox Code Playgroud)

计算也将失败,因为"x未定义".但是,如果我定义x那么没有要优化的变量参数.

如何在此处将非变分参数用作函数参数?

python numpy mathematical-optimization minimization scipy

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

在Gnuplot中自定义颜色范围

我有一个轮廓图运行得很好,它为不同的值生成相同数量的颜色.

我想要的是在右侧生成标签,使每个块具有正确的颜色.

目前的结果:

在此输入图像描述

我想要的是在每个块上都有这个值:

---- 300

---- 100

---- 70

---- 30

---- 10

---- 1

---- 0

编辑:当我添加此代码时:

set cbtics ('300' 300, '100' 100, '30' 30, '10' 10, '1' 1, '0.5' 0.5, '0.1' 0.1, '0.01' 0.01, '0' 0);
set palette defined (0.1 "#4CAF4F",0.3 "#65B443",0.5 "#7FBA38",0.7 "#98BF2D",0.9 "#B2C521",1.0 "#CBCA16",2 "#E5D00B",3 "#FFD600",4 "#FFC400",5 "#FFB300",6 "#FFA100",7 "#FF9000",8 "#FF7E00",10 "#FF6D00",30 "#F85A00",50 "#F14800",70 "#EA3600",90 "#E32400",100 "#DC1200",300 "#D50000")
Run Code Online (Sandbox Code Playgroud)

结果是不平衡的:

在此输入图像描述

我希望刻度是均匀的,但无法成功.

gnuplot

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