Multiplication of two matrices


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Multiplication of two matrices
# 15  
Old 02-24-2016
Tried copying from the post to the command prompt.. Shows several errors. Dont ' know what' s wrong
# 16  
Old 02-24-2016
Neither do we - unless you post errors and your input.
# 17  
Old 02-24-2016
Quote:
Originally Posted by Akang
I did use the actual file names that i have. I saved this code to a file and saved it as code.awk, then in the shell promp i type :
Code:
awk code file2 file1 > output

. Is it the right way?
Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules.

I have guessed at what you typed into your shell, but with your punctuation I have no confidence that I have correctly guessed at how your post should have been formatted.
If you have a file named code.awk containing a shell script that invokes an awk command, then you need to use a shell to run that script; not awk. And, the file you give to the shell to be run needs to be the file that contains the script you want to run.

You haven't told us what operating system or shell you're using... So making some wild guesses. If you really saved the shell script RudiC suggested (as provided in post #8 in this thread and duplicated here:
Code:
awk '
FNR == NR       {T[$1 SFX] = $3
                 next   
                }
                {printf "%s", $COL
                }
FNR == 1        {for (i=COL+1; i<=NF; i++)      {if ($i in T)   {C[++CNT] = i
                                                                 F[CNT] = T[$i]
                                                                 printf " %s", $i
                                                                }
                                                }
                 printf RS
                 next
                }
                {for (i=1; i<=CNT; i++) printf "%s%s", FS, $C[i] * F[i]
                 print ""
                }
' COL=2 SFX="_A" file2 file1

in a file named code.awk, you would execute that script with something like:
Code:
sh code.awk

If you are trying this on a Solaris/SunOS system, you will need to change awk on the first line in code.awk to /usr/xpg4/bin/awk or nawk before you execute the above command.
# 18  
Old 02-25-2016
@Don Cragun & RudiC: I am working on a Red Hat Linux server.

---------- Post updated at 01:58 PM ---------- Previous update was at 11:44 AM ----------

Well, I did manage to run the code but output is not as desired. This is exactly what i get
Code:
ID2ID1	ID2	ID3	ID4	ID5	MI1_A	MI1_H	MI2_A	MI2_H
 MI1_A MI2_A
1
2

# 19  
Old 02-25-2016
Quote:
Originally Posted by Akang
@Don Cragun & RudiC: I am working on a Red Hat Linux server.

---------- Post updated at 01:58 PM ---------- Previous update was at 11:44 AM ----------

Well, I did manage to run the code but output is not as desired. This is exactly what i get
Code:
ID2ID1	ID2	ID3	ID4	ID5	MI1_A	MI1_H	MI2_A	MI2_H
 MI1_A MI2_A
1
2

Are you sure that you didn't switch the order of the input files? I.e., having the last line of the script be:
Code:
' COL=2 SFX="_A" file1 file2

instead of:
Code:
' COL=2 SFX="_A" file2 file1

# 20  
Old 02-25-2016
@Don Cragun : I'm certain I did it right

Code:
' COL=2 SFX="_A" file2 file1

If I input the file1 first, this is the output
Code:
AMI1	A	0.4	3.1

B

# 21  
Old 02-25-2016
I'm sorry I can't help further as you continously refuse to cooperate. No errors are posted nor input files. The codes run as designed on the samples in post#1.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Multiplication Table in UNIX

How can I produce this kind of output? Enter a number: 3 MULTIPLICATION TABLE: 0 1 2 3 1 1 2 3 2 2 4 6 3 3 6 9 When you enter a number, it should show you the corresponding multiplication table. Plus we need to use for loops that I do not actually know. Thanks in advance! Here is my... (2 Replies)
Discussion started by: larkha
2 Replies

2. UNIX for Beginners Questions & Answers

Matrix multiplication

I have two files. Row id in File1 matches the column id in file2 (starting from column7 )except the last 2 characters. File1 has 50 rows and File 2 has 56 columns. If the id matches I want to multiply the value in column3 of File1 to the entire column in File2. and in the final output print only... (11 Replies)
Discussion started by: Akang
11 Replies

3. UNIX for Dummies Questions & Answers

Merge matrices

Hello all, I have square matrices that look like the following, I want to merge these matrices together, and add the file names as headers. This is a simple example with two variables, actually I have ~1500 variables and 10 files. The order of variables in the matrices are consistent. Please... (2 Replies)
Discussion started by: senhia83
2 Replies

4. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

5. UNIX for Advanced & Expert Users

Vector base Cosine Similarity for two Matrices -- R in UNIX

Dear All, I am facing a problem and I would be Thankful if you can help Hope this is the right place to ask this question I have two matrices of (row=10, col=3) and I want to get the cosine similarity between two lines (vectors) of each file --> the result should be (10,1) of cosine measures I... (10 Replies)
Discussion started by: A-V
10 Replies

6. Programming

C multiplication with GCC

Hi all, newbie here. Does anyone know if it is possible to use GCC or Clang to multiply two unsigned numbers and have it use for intel instructions, the mull instruction or an imul. I can't figure how to word this to accomplish this task: (int)(((unsigned long long)result * (unsigned)2290649225)... (4 Replies)
Discussion started by: pheonix
4 Replies

7. UNIX for Dummies Questions & Answers

Multiplication using bc in a for loop

Hi, I would like to carry out a multiplication in a for loop but some how I get always zero. The result of the multiplication must be assigned to the variable x. Here is teh code for (( i=1;i<=15;i++)); do x=$( printf "%s\n " 'scale = 10; i*5.0*335.0*3.0/1000.0' | bc) echo $x $i... (5 Replies)
Discussion started by: f_o_555
5 Replies

8. UNIX for Dummies Questions & Answers

Exact Multiplication

Hi, I am writing a script in Bourne shell #!/bin/sh used=`quota -v | tail -1 | awk '{print $2}'` total=`quota -v | tail -1 | awk '{print $3}'` echo "$used" echo "$total" perc=`expr ${used} / ${total} * 100 | bc` echo "$perc" I want to get a percentage of quota used to total limit I... (5 Replies)
Discussion started by: desai.rishabh
5 Replies

9. Shell Programming and Scripting

using awk multiplication

Suppose i have a file A 1*2*3*4 2*4*4*22 and second file B 2*3*4*5 4*4*6*7 By multiplying file A by file B that is file A by first column in file B respectively output shud be 2*6*12*20 8*16*24*154 my code is =$1 next } {for (f=1;f<=NF;f++) (2 Replies)
Discussion started by: cdfd123
2 Replies

10. Linux

Multiplication with Fractions

Hello there, how do i multiply a fraction and a whole number? Example 20% of 50,000. I had gotten 0.2 using the following: chk=echo 20 100 | awk `{print $1/$2}` echo $chk $chk \* 50000 displays the error: non-numeric expression. (1 Reply)
Discussion started by: alby
1 Replies
Login or Register to Ask a Question