Multiply elements of 2 arrays together into another array


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Multiply elements of 2 arrays together into another array
# 1  
Old 04-21-2019
Multiply elements of 2 arrays together into another array

So I need to Write an array processing program using a Linux shell programming language to perform the following.
Load array X of 20 numbers from an input file X.
Load array Y of 20 numbers from an input file Y.
Compute array Z by multiply Xi * Yi then compute the square-root of this computation.

What I have done so far is loading the input file X.txt and Y.txt into array X & Y. I try to compute the multiplication and insert it into array Z but I keep getting a syntax error. This complicates me from moving on to compute the square root of the elements in Z.

Code:
#!/bin/bash

oldIFS="$IFS"
IFS=$'\n' X=($(<X.txt))
IFS="$oldIFS"

for each in "${X[@]}"
do
	echo "$each"
done

count=${#X[@]}

oldIFS="$IFS"
IFS=$'\n' Y=($(<Y.txt))
IFS="$oldIFS"

for each in "${Y[@]}"
do
	echo "$each"
done


for ((i=0;i<count;i++));do
	Z[$i]=$("${X[$i]} * ${Y[$i]}")
done

for each in "${Z[@]}"
do
	echo "$each"
done

# 2  
Old 04-22-2019
Hi, try:
Code:
Z[$i]=$((${X[$i]} * ${Y[$i]}))

Note also that the double quotes should not be there..

This can also be written as:
Code:
Z[i]=$((X[i] * Y[i]))

Which you may find easier to read...

Last edited by Scrutinizer; 04-22-2019 at 05:54 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 04-22-2019
Hi sarapham40...

Remember 'bash' has only integer arithmetic and can only go to a maximum and minimum whole number integer values depending on whether the OS is 32bit or 64bit.
Square root is not possible in PURE bash as it does not have the ability of floating point maths.
You do have tools at your disposal to get the square roots, (awk, bc, python, perl and others), and drop the results into variables or redirect to files.

If you use 'ksh' as the shell this has excellent builtin floating point maths so you could create your SQRT() function using Newton's method and then the whole would be a PURE shell script.
Alternatively you could use pseudocode x**(1.0/2.0) as your square root too.

Just hints to help on the way...

Bazza...

Last edited by wisecracker; 04-22-2019 at 07:05 AM.. Reason: Clean up poor line spacing.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Add column and multiply its result to all elements of another column

Input file is as follows: 1 | 6 2 | 7 3 | 8 4 | 9 5 | 10 Output reuired (sum of the first column $1*$2) 1 | 6 | 90 2 | 7 | 105 3 | 8 | 120 4 |9 | 135 5 |10 | 150 Please enclose sample input, sample output, and code... (5 Replies)
Discussion started by: Sagar Singh
5 Replies

2. Shell Programming and Scripting

Sum elements of 2 arrays excluding labels

I'm looking for an efficient way to sum elements from 2 arrays using AWK and preserve header as well as sample names in the output array. I have Ubuntu 16.04 LTS. For example; ARRAY 1 SAMPLE DERIVED ANCESTRAL Sample1 14352 0 Sample2 14352 0 Sample3 14352 0 Sample4 ... (8 Replies)
Discussion started by: Geneanalyst
8 Replies

3. Shell Programming and Scripting

Compare multiple arrays elements using awk

I need your help to discover missing elements for each box. In theory each box should have 4 items: ITEM01, ITEM02, ITEM08, and ITEM10. Some boxes either have a missing item (BOX02 ITEM08) or might have da duplicate item (BOX03 ITEM02) and missing another one (BOX03 ITEM01). file01.txt ... (2 Replies)
Discussion started by: alex2005
2 Replies

4. Shell Programming and Scripting

Help reading the array and sum of the array elements

Hi All, need help with reading the array and sum of the array elements. given an array of integers of size N . You need to print the sum of the elements in the array, keeping in mind that some of those integers may be quite large. Input Format The first line of the input consists of an... (1 Reply)
Discussion started by: nishantrefound
1 Replies

5. Shell Programming and Scripting

Bash arrays: rebin/interpolate smaller array to large array

hello, i need a bit of help on how to do this effectively in bash without a lot of extra looping or massive switch/case i have a long array of M elements and a short array of N elements, so M > N always. M is not a multiple of N. for case 1, I want to stretch N to fit M arrayHuge H = (... (2 Replies)
Discussion started by: f77hack
2 Replies

6. Shell Programming and Scripting

Removing elements from an array

Hi I have two arrays : @arcb= (450,625,720,645); @arca=(625,645); I need to remove the elements of @arca from elements of @arcb so that the content of @arcb will be (450,720). Can anyone sugget me how to perform this operation? The code I have used is this : my @arcb=... (3 Replies)
Discussion started by: rkrish
3 Replies

7. Shell Programming and Scripting

Array with String Elements

How can I get my array to understand the double-quotes I'm passing into it are to separate text strings and not part of an element? here's what I'm working with... db2 -v connect to foo db2 -x "select '\"' || stats_command || '\",' from db2law1.parallel_runstats where tabname = 'BAZ'" set... (4 Replies)
Discussion started by: djschmitt
4 Replies

8. Shell Programming and Scripting

How to access the elements of two arrays with a single loop using the inbuilt index.

Hi all, I wanted to access two arrays (of same size) using one for loop. Ex: #!/bin/bash declare -a num declare -a words num=(1 2 3 4 5 6 7) words=(one two three four five six seven) for num in ${num} do echo ":$num: :${words}:" done Required Output: :1: :one: (11 Replies)
Discussion started by: 14341
11 Replies

9. Shell Programming and Scripting

PHP arrays as array elements

PHP question...I posted this on the Web Development forum, but maybe this is a better place! I have an SQL query that's pulled back user IDs as a set of columns. Rather than IDs, I want to use their names. So I have an array of columns $col with values 1,7,3,12 etc and I've got an array $person... (3 Replies)
Discussion started by: JerryHone
3 Replies

10. Shell Programming and Scripting

To return the elements of array

Hi, Please can someone help to return the array elements from a function. Currently the problem I face is that tempValue stores the value in myValue as a string while I need an array of values to be returned instead of string. Many Thanks, Sudhakar the function called is: ... (5 Replies)
Discussion started by: Sudhakar333
5 Replies
Login or Register to Ask a Question