小编Tom*_*ech的帖子

带有gnuplot或八度音阶的3D直方图

我想画一个3D直方图(用gnuplot或octave)来表示我的数据.假设我有一个以下形式的数据文件:

2 3 4    
8 4 10    
5 6 7
Run Code Online (Sandbox Code Playgroud)

我想在集合[1,3] x [1,3]中绘制九个彩色条(矩阵的大小),这样条的颜色与条的高度成比例.我怎样才能做到这一点?

matlab gnuplot histogram octave

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

如果没有提供选项,有getopts显示帮助

我解析了一些类似的问题,但这些问题并不适合我.

我有这个很棒的bash脚本,可以执行一些很酷的功能,这里是代码的相关部分:

while getopts ":hhelpf:d:c:" ARGS;
do
    case $ARGS in
        h|help )
            help_message >&2
            exit 1
            ;;
        f )
            F_FLAG=1
            LISTEXPORT=$OPTARG
            ;;
        d )
            D_FLAG=1
            OUTPUT=$OPTARG
            ;;
        c )
            CLUSTER=$OPTARG
            ;;
        \? )
            echo ""
            echo "Unimplemented option: -$OPTARG" >&2
            echo ""
            exit 1
            ;;
        : )
            echo ""
            echo "Option -$OPTARG needs an argument." >&2
            echo ""
            exit 1
            ;;
        * )
            help_message >&2
            exit 1
            ;;
    esac
done
Run Code Online (Sandbox Code Playgroud)

现在,如果触发,我的所有选项都运行良好.我想要的是getopts 在没有触发选项时吐出help_message函数,比如脚本只是在没有参数的情况下启动./scriptname.sh.

我在这里看到了一些方法,实现了IF循环和函数, …

bash getopts

7
推荐指数
2
解决办法
9776
查看次数

awk与1970年以前的日期

来自https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html据 我所知,gawk只有2个函数可用于日期/时间 mktimestrftime.

所以,我可以解析使用mktime返回的任何日期很长,所以我可以进行任何数学操作,所以我可以格式化所需的输出strftime

这适用于任何日期之后的魅力 "1970 01 01 00 00 00"

使用awk,如何在1970年之前格式化日期?

$ awk 'BEGIN{t=mktime("1970 01 01 00 00 00"); print t; print strftime("%Y-%m-%d", t) }'
10800
1970-01-01
$ awk 'BEGIN{t=mktime("1960 01 01 00 00 00"); print t; print strftime("%Y-%m-%d", t) }'
-315608400
awk: cmd. line:1: (FILENAME=- FNR=1) fatal: strftime: second argument less than 0 or too big for time_t
Run Code Online (Sandbox Code Playgroud)

bash awk date

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

c ++ vtk xml writer(vtkImageData) - 同一个vti文件中的多个变量

我试图将统一网格中的数据写入vtk XML文件,以便我可以使用Paraview渲染它.我希望我的输出文件包含两个变量:一个3分量向量和每个点的一个标量值.我设法写了一个.vti文件,只包含向量,如下所示:

#include <vtkVersion.h>
#include <vtkSmartPointer.h>
#include <vtkXMLImageDataWriter.h>
#include <vtkImageData.h>    

int main()
{
    int nx = 10, ny = 10, nz = 10;

    vtkSmartPointer<vtkImageData> imageData =
        vtkSmartPointer<vtkImageData>::New();
    imageData->SetDimensions(nx, ny, nz);

#if VTK_MAJOR_VERSION <= 5
    imageData->SetNumberOfScalarComponents(3);
    imageData->SetScalarTypeToDouble();
#else
    imageData->AllocateScalars(VTK_DOUBLE, 3);
#endif

    for (int k = 0; k < nz; ++k) {
        for (int j = 0; j < ny; ++j) {
            for (int i = 0; i < nx; ++i) {
                double * voxel = static_cast<double*>(imageData->GetScalarPointer(i,j,k));
                int coord = i + …
Run Code Online (Sandbox Code Playgroud)

c++ xml vtk

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

Crossfilter:如何从组中删除或过滤值

我正在尝试使用csv文件的值总和来获取组,但我想删除所有零值.

我的csv文件示例:

Continents      Function      Value  
South Asia      Function1   
South Asia      Function2     14  
Europe          Function1   
Europe          Function2     12  
Europe          Function3     2
Run Code Online (Sandbox Code Playgroud)

我想得到

{"key":"Function2","value":26},  
{"key":"Function3","value":2}
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

var ndx = crossfilter( csv );  
var functions = ndx.dimension( function( d )
{
   return d["Function"];
} );  
var functionAmountGroup = functions.group().reduceSum( function ( d )
{
   return d3.format( ".2f" )( d["Value"] );
} );
Run Code Online (Sandbox Code Playgroud)

我明白了

{"key":"Function2","value":26},  
{"key":"Function3","value":2},  
{"key":"Function1","value":0}
Run Code Online (Sandbox Code Playgroud)

但我想删除"Function1"行,因为零值.

我试着用值维度过滤,没关系

var filterValues = ndx.dimension( 
   function( d )
   {
      return d["Value"];
   } ).filter( 
       function( d ) …
Run Code Online (Sandbox Code Playgroud)

javascript crossfilter

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

在使用printf时如何在shell脚本中转​​义特殊字符?

我正在尝试使用printfshell 格式化字符串,我将从文件中获取输入字符串,其中包含特殊字符等%,',"",,\user, \tan.

如何转义输入字符串中的特殊字符?

例如

#!/bin/bash
# 

string='';
function GET_LINES() {

   string+="The path to K:\Users\ca, this is good";
   string+="\n";
   string+="The second line";
   string+="\t";
   string+="123"
   string+="\n";
   string+="It also has to be 100% nice than %99";

   printf "$string";

}

GET_LINES;
Run Code Online (Sandbox Code Playgroud)

我希望这将以我想要的格式打印

The path to K:\Users\ca, this is good
The second line   123
It also has to be 100% nice than %99
Run Code Online (Sandbox Code Playgroud)

但它给出了意想不到的结果

./script: line 14: printf: missing unicode digit for \U
The path to K:\Users\ca, this is good …
Run Code Online (Sandbox Code Playgroud)

linux bash shell printf

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

为什么Scala需要def语句?

我是scala的新手,但我有javascript的背景.

虽然我看到需要分开valvar(可变和不可变),但我不明白为什么def应该需要这个陈述.

如果函数是真正的一等公民,就像在javascript中一样,为什么要声明它们def而不是声明val

该设计决策是基于JVM相关的约束,还是存在一些我无法理解的基础逻辑?

javascript scala immutability

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

打印作为变量传递的字段列表

我有一个文件说a.txt及以下是它的内容:

bob 1 100            
lincoln 2 200  
chris 3 300        
Run Code Online (Sandbox Code Playgroud)

文件内容由空格分隔.

使用awk,我可以访问每一列.使用以下命令打印以逗号分隔的第1和第3列:

cat a.txt | awk ' { print $1","$3} '
Run Code Online (Sandbox Code Playgroud)

我很成功

现在我想从另一个shell脚本动态传递标准.通过说标准我的意思 - $1","$3.

我尝试了下面的命令,但它没有用.

myvar="$1"   
awk -v a="$myvar"  ' { print a } ' a.txt
Run Code Online (Sandbox Code Playgroud)

但这是打印$13次,因为有三行a.txt.

如何以这种方式将字段列表传递给awk?

bash shell awk

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

如何在vtkStructuredGrid上设置数据值

我正在尝试用分析字段填充结构化网格,但是尽管阅读了vtk文档,但我还没有找到如何在网格点实际设置标量值或设置网格的间距/原点信息.从下面的代码开始,我该怎么做

  1. 将空间信息与网格相关联(即单元格0,0,0位于坐标0,0,0处,间距在每个方向上均为dx)
  2. 将标量值与每个网格点相关联.首先,我只需要一个,但最终我想在每个点存储3个数据(不是矢量,3个不同的标量).
grid = vtk.vtkStructuredGrid()
numPoints = int((maxGrid - minGrid)/dx)
grid.SetDimensions(numPoints, numPoints, numPoints)
Run Code Online (Sandbox Code Playgroud)

vtk

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

使用AWK进行字数统计

我有如下文件:

这是一个示例文件,该文件将用于测试

this is a sample file
this file will be used for testing
Run Code Online (Sandbox Code Playgroud)

我想用AWK计算单词.

预期的产出是

this 2
is 1
a 1
sample 1
file 2
will 1
be 1
used 1
for 1
Run Code Online (Sandbox Code Playgroud)

以下AWK我写过,但得到一些错误

cat anyfile.txt|awk -F" "'{for(i=1;i<=NF;i++) a[$i]++} END {for(k in a) print k,a[k]}'
Run Code Online (Sandbox Code Playgroud)

awk

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

标签 统计

bash ×4

awk ×3

javascript ×2

shell ×2

vtk ×2

c++ ×1

crossfilter ×1

date ×1

getopts ×1

gnuplot ×1

histogram ×1

immutability ×1

linux ×1

matlab ×1

octave ×1

printf ×1

scala ×1

xml ×1