Select columns from a matrix given within a range in BASH
I have a huge matrix file which looks like this (example matrix):
As one can see, this matrix has 4 columns and 6 rows. But my original matrix has some 3 million rows and 6000 columns.
For example, on this matrix I can define my task as "to extract the first 3 columns from this matrix and store in another file".
Hence, my new file will look like this:
So for my huge matrix, I want to extract the first "1-2000 columns" (including columns 1 and 2000) and then from "3000 to 6000 columns" in two separate files. That is give a range and extract the columns within that range.
I have tried this command to extract the first 2000 columns but it does not work. Later using the same command I can extract columns between 3000 to 6000 just by changing the values in the for loop:
The following code transform the matrix to columns. Is it possible to do it other way around ( get the input from the output) ?
input
y1 y2 y3 y4 y5
x1 0.3 0.5 2.3 3.1 5.1
x2 1.2 4.1 3.5 1.7 1.2
x3 3.1 2.1 1.0 4.1 2.1
x4 5.0 4.0 6.0 7.0 1.1
output
x1 y1 0.3
x2 y1 1.2
x3... (1 Reply)
How can i convert two columns in to o and 1 matrix. thnks
Input
a c1
b c2
c c1
d c3
e c4
output
c1 c2 c3 c4
a 1 0 0 0
b 0 1 0 0
c 1 0 0 0
d 0 0 ... (5 Replies)
Hi all,
I have a large matrix of 720 x 25. I want to get sum of range of rows and columns. Like, I need sum of all columns and row number 2 to 21, then leaving 22nd row, again sum of all columns and row number 23 to 42 again leaving 43rd row and then sum of 44th to 63. Means I want to add all... (4 Replies)
Hello all,
I am quite new in this but I need some help to keep going with my analysis.
I am struggling with a short script to read a square matrix and convert it in two collumns.
A B C D
A 0.00 0.06 0.51 0.03
B 0.06 0.00 0.72 0.48
C 0.51 0.72 0.00 ... (7 Replies)
Hi guys,
here https://www.unix.com/shell-programming-scripting/193043-3-column-csv-correlation-matrix-awk-perl.html I found awk script converting
awk '{
OFS = ";"
if (t) {
if (l != $1)
t = t OFS $1
} else t = OFS $1
x = x ? x OFS $NF : $NF
l = $1
}... (2 Replies)
Hi,
I am sure this is simple, but I am breaking my head.
I need 1 page with at the top a range of dates, 2002, 2003, 2004 etc
If you select 2002 it will show the content of 1 div, if you select 2002 the content of another div.
this is for showing announcements on a site, right now there... (1 Reply)
I have a huge matrix file containing some 1.5 million rows and 6000 columns. The matrix looks something like this:
1 2 3
4 5 6
7 8 9
3 4 5
I want to add all the numbers in the columns of this matrix and display the result to my stdout. This means that the numbers in the first column are:
... (2 Replies)
Two related questions;
1. how do i select the nth file in a directory?
2. how do i select a range of files, say 2nd-5th?
I have done the following but I don't think the solution is a neat one.
Query 1: select nth file - say 3rd file;
#!/bin/bash
touch foo1 foo2 foo3 foo4 foo5 foo6... (1 Reply)
Dear Unix Gurus,
I have a sample data set that looks like this
y1 y2 y3 y4 y5
x1 0.3 0.5 2.3 3.1 5.1
x2 1.2 4.1 3.5 1.7 1.2
x3 3.1 2.1 1.0 4.1 2.1
x4 5.0 4.0 6.0 7.0 1.1
I want to open it up so that I get
x1 y1 0.3
x2 y1 1.2
x3 y1 3.1
x4 y1 5.0
x1 y2 0.5
x2 y2... (3 Replies)