我想画一个3D直方图(用gnuplot或octave)来表示我的数据.假设我有一个以下形式的数据文件:
2 3 4
8 4 10
5 6 7
Run Code Online (Sandbox Code Playgroud)
我想在集合[1,3] x [1,3]中绘制九个彩色条(矩阵的大小),这样条的颜色与条的高度成比例.我怎样才能做到这一点?
我解析了一些类似的问题,但这些问题并不适合我.
我有这个很棒的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循环和函数, …
来自https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html据
我所知,gawk只有2个函数可用于日期/时间
mktime和strftime.
所以,我可以解析使用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) 我试图将统一网格中的数据写入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) 我正在尝试使用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) 我正在尝试使用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) 我是scala的新手,但我有javascript的背景.
虽然我看到需要分开val和var(可变和不可变),但我不明白为什么def应该需要这个陈述.
如果函数是真正的一等公民,就像在javascript中一样,为什么要声明它们def而不是声明val?
该设计决策是基于JVM相关的约束,还是存在一些我无法理解的基础逻辑?
我有一个文件说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?
我正在尝试用分析字段填充结构化网格,但是尽管阅读了vtk文档,但我还没有找到如何在网格点实际设置标量值或设置网格的间距/原点信息.从下面的代码开始,我该怎么做
grid = vtk.vtkStructuredGrid()
numPoints = int((maxGrid - minGrid)/dx)
grid.SetDimensions(numPoints, numPoints, numPoints)
Run Code Online (Sandbox Code Playgroud) 我有如下文件:
这是一个示例文件,该文件将用于测试
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)