我有一个数据文件,我正在创建一个直方图.
数据文件是:
-0.1 0 0 JANE
1 1 1 BILL
2 2 1 BILL
1 3 1 BILL
6 4 0 JANE
35 5 0 JANE
9 6 1 BILL
4 7 1 BILL
24 8 1 BILL
28 9 1 BILL
9 10 0 JANE
16 11 1 BILL
4 12 0 JANE
45 13 1 BILL
Run Code Online (Sandbox Code Playgroud)
我的gnuplot脚本是:
file='test.txt'
binwidth=10
bin(x,width)=width*floor(x/width)
set boxwidth 1
plot file using (bin($1,binwidth)):(1.0) smooth freq with boxes, \
file using (1+(bin($2,binwidth))):(1.0) smooth freq with …Run Code Online (Sandbox Code Playgroud) 我有一个2735个字符的字符串.我想在字符向量中搜索该字符串.当我运行grep()时
grep(pattern=substr(string,1,2560), x=myvector)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error in grep(pattern = substr(string, 1, 2560), x = myvector) :
invalid regular expression 'all the characters of my string...'
Run Code Online (Sandbox Code Playgroud)
如果我试试
grep(pattern=substr(string,1,2559), x=myvector)
我没有得到错误.
问题:传递给grep()时字符串长度是否有限制?如果是这样,我应该如何解决它?
R中是否有环境变量或全局变量可用于在我的代码的交互式和非交互式版本之间切换?因为没有这很重要,似乎有一个互动环节,以接受命令行参数的方式.这里提出了一个相关问题, 但它没有解决我的问题.
我正在寻找的一个例子是这样的:
if(ISINTERACTIVE){
a <- 10
b <- 6
}else{
args = commandArgs(trailingOnly = TRUE)
a <- args[1]
b <- args[2]
}
Run Code Online (Sandbox Code Playgroud) 如果我set -x在我的 bash 会话(v4.1.2(2) - CentOS 6.10)中,我得到:
$ ls /root
+ ls --color=auto /root
ls: cannot open directory /root: Permission denied
Run Code Online (Sandbox Code Playgroud)
太好了,它回显了我运行并打印出终端的命令。这是预期的。现在,如果我都重定向stdout并stderr到另一个文件。
$ ls /root &> stuff.txt
+ ls --color=auto /root
Run Code Online (Sandbox Code Playgroud)
它仍然将命令打印到终端。
题
哪里set -x有bash的打印,如果它是不是stderr还是stdout?
我正在运行一个本地blastx服务器.其中一个命令行选项是-num_threads.查看可执行文件blastx,认为它可能是设置OMP_NUM_THREADS的shell脚本,但事实证明它是在机器代码中.我假设(可能不正确)它是一个OpenMP应用程序,这让我思考.
问题:是否可以将OpenMP线程的数量更改为命令行选项,而不是使用环境变量OMP_NUM_THREADS?
我有一个函数,目前它是高斯函数:
G<-function(x, mu, s) 1/(2*s**2*pi)**0.5 * exp(-(x-mu)**2/(2*s**2))
Run Code Online (Sandbox Code Playgroud)
我想使用将其与mu=50, s=10集成integrate()。例如
integrate(G(s=10,mu=50), 0, 10)
Error in G(s = 10, mu = 50) : argument "x" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
问题源于这样一个事实:integrate()需要一个只有一个参数的函数,而我给它一个需要 3 个参数的函数。我可以通过给出mu和s默认值来“解决”问题,但这样我就失去了一般性。处理这个问题的最佳方法是什么?
编辑:这被标记为重复。这个问题没有公认的答案,我也不清楚那里到底在问什么。该问题的错误消息与我的不同。
我正在 Ubuntu 16.04 机器上编译大量代码(100,000 多行)。在这样做的过程中,在 cmake (v3.5.1) 构建过程中(在运行 make 之前),我生成了大量警告。
例如
WARNING: Target "gadgetron_moco" requests linking to directory "/usr/lib". Targets may link only to libraries. CMake is dropping the item.
Run Code Online (Sandbox Code Playgroud)
显然,我不能在这里重新发布代码,但在源代码中我发现了一个moco/CMakeLists.txt. 这是该文件中的代码片段:
if(CUDA_FOUND)
add_library(gadgetron_moco SHARED
cpuRegistrationAveragingGadget.h
gadgetron_moco_export.h
gpuRegistrationAveragingGadget.h
gpuRegistrationScatteringGadget.h
RegistrationAveragingGadget.h
RegistrationScatteringGadget.h
${CPU_GADGETS}
${GPU_GADGETS}
)
set_target_properties(gadgetron_moco PROPERTIES VERSION ${GADGETRON_VERSION_STRING} SOVERSION ${GADGETRON_SOVERSION})
target_link_libraries(gadgetron_moco
gadgetron_gadgetbase
gadgetron_toolbox_cpucore gadgetron_mricore ${CPU_LIBS} ${GPU_LIBS}
${Boost_LIBRARIES} ${ISMRMRD_LIBRARIES}
optimized ${ACE_LIBRARIES} debug ${ACE_DEBUG_LIBRARY}
)
install (TARGETS gadgetron_moco DESTINATION lib COMPONENT main)
endif()
Run Code Online (Sandbox Code Playgroud)
我用来调用 cmake 的命令:
cmake -DCMAKE_INSTALL_PREFIX=/opt/gadgetron/ \
-DCMAKE_CXX_COMPILER=/usr/bin/g++-5 …Run Code Online (Sandbox Code Playgroud) 我正在运行CentOS 6.9。我想从命令行测试当前是否正在使用Matlab许可证。目前,我能想到的最好方法是
/opt/matlab/R2018b/bin/matlab -nodesktop -nosplash -r "exit;"
export RETURN_VALUE=$?
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?也许从Matlab本身捕获了实际的许可错误?我不想在这种情况下使用grep方法。
我正在寻找可以使用Matlab可执行文件(或其他Mathwork的可执行文件)来仅测试许可证是否可用的东西。
编辑:Matlab发出不同的许可错误,具体取决于许可证是否不可用以及您是否是未授权用户。能够区分两者很重要,因为我最终希望为Slurm编写一个序言脚本来处理两者之间的差异。允许某些用户使用许可证,而其他用户则不允许。这就是我上面的示例不足的原因。
我写了一个读取文件的简短perl脚本.见tmp.txt:
1 gene_id "XLOC_000001"; gene_name "DDX11L1"; oId
1 gene_id "XLOC_000001"; gene_name "DDX11L1"; oId
1 gene_id "XLOC_000001"; gene_name "DDX11L1"; oId
1 gene_id "XLOC_000001"; gene_name "DDX11L1"; oId
Run Code Online (Sandbox Code Playgroud)
我的perl程序convert.pl是:
use warnings;
use strict;
use autodie; # die if io problem with file
my $line;
my ($xloc, $gene, $ens);
open (IN, "tmp.txt")
or die ("open 'tmp.txt' failed, $!\n");
while ($line = <IN>) {
($xloc, $gene) = ($line =~ /gene_id "([^"]+)".*gene_name "([^"]+)"/);
print("$xloc $gene\n");
}
close (IN)
or warn $! ? …Run Code Online (Sandbox Code Playgroud) 我正在关注使用V100张量核心的CUDA 教程.我的MWE代码:
$ cat src/wmma.cu
#include <cuda_runtime_api.h>
#include <mma.h>
using namespace nvcuda;
int main(void){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用CUDA 9.0编译它,
$ nvcc src/wmma.cu
src/wmma.cu(10): error: name must be a namespace name
1 error detected in the compilation of "/gpfs0/scratch/1430008/tmpxft_0002054c_00000000-8_wmma.cpp1.ii".
Run Code Online (Sandbox Code Playgroud)
如果我添加选项--gpu-architecture=compute_62,我仍然会得到相同的错误. CPATH设置为/opt/cuda/9.0/include:,所以我相信我没有找到头文件的困难.
当我注释掉using namespace nvcuda它时,它会按预期编译并执行.
题: