小编Xat*_*tan的帖子

Unix排序字母数字字符和':','/'组合的关键

我正在尝试使用UNIX sort命令(GNU 5.97或7.4)根据ASCII代码对文本文件进行排序.文件中的行有一列,用作排序中的键.

chr1:110170896:NM_004037:0:1:0/1
chr1:110170897:NM_004037:0:1:0/1
chr11:10325325:chr11:0:1:0/1
chr11::0325325:chr11:0:1:0/1
Run Code Online (Sandbox Code Playgroud)

ascii代码:是58,1是49.但是,当我对文件进行排序时sort -k 1,1 temp.txt,输出是这样的,

chr11::0325325:chr11:0:1:0/1
chr1:110170896:NM_004037:0:1:0/1
chr1:110170897:NM_004037:0:1:0/1
chr11:10325325:chr11:0:1:0/1
Run Code Online (Sandbox Code Playgroud)

从结果,我不知道如何排序确定的顺序1:.如果有任何固定订单,则应将第一行和第四行放在一起.

理想情况下,我希望根据ASCII码将键从左侧字符排序到右侧字符.

unix sorting

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

小数的特征稀疏矩阵乘法误差

我在我的程序中使用C++ Eigen 3库.特别是,我需要将两个特征稀疏矩阵相乘并将结果存储到另一个特征稀疏矩阵中.但是,我注意到如果特征稀疏矩阵的一些条目小于1e-13,则结果中的相应条目将是0而不是小数.假设我乘以稀疏单位矩阵a和另一个稀疏矩阵b.如果b的topleft条目,即b(0,0)小于1e-13,例如9e-14,则结果c = a*b的forpleft条目,即c(0,0),是0而不是9e-14.

这是我测试的代码,

#include <iostream>
#include <math.h>
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <Eigen/Eigen>
#include <Eigen/Dense>
#include <Eigen/LU>

using namespace std;
using namespace Eigen;

int main() {

DynamicSparseMatrix<double, RowMajor> a(2,2);
DynamicSparseMatrix<double, ColMajor> b(2,2);
DynamicSparseMatrix<double, RowMajor> c(2,2);
a.coeffRef(0,0) = 1;
a.coeffRef(1,1) = 1;
b.coeffRef(0,0) = 9e-14;
b.coeffRef(1,1) = 1;
cout << "a" << endl;
cout << a << endl;
cout << "b" << endl;
cout << b << endl;
c = a * b;
cout << "c" << endl; …
Run Code Online (Sandbox Code Playgroud)

c++ sparse-matrix eigen

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

标签 统计

c++ ×1

eigen ×1

sorting ×1

sparse-matrix ×1

unix ×1