|
Skrypt w Bashu - mnożenie dwóch macieży
misiek24 - 09-01-2009 20:48
Mam taki problem ponieważ na zaliczenie w szkole dostałem skrypt mnożący dwie macierze. Znalazłem na forum skrypt, który sumuje dwie macierze. Jakby ktoś mógłby mi pomóc i napisać jak go zmienić aby mnożył te macierze byłbym bardzo wdzięczny. Próbuje już od kilku dni i nic z tego.
Podaje skrypt:
#!/bin/bash
if test -f "suma.txt" then rm "suma.txt" fi
if [ -a "dane1.txt" ] then rm "dane1.txt" fi
if [ -a "dane2.txt" ] then rm "dane2.txt" fi
wymiar=`cat konfig.txt | awk '{ print $1 }'` #wymiar macierzy pobrany z pliku
ilosc=$(($wymiar*$wymiar)) #ilosc wszystkich pozycji w macierzy
i=0 liczba1=1 wspX=1 wspY=1 while [ $i -lt $ilosc ] #petla tworzaca macierze w plikach dane1.txt oraz dane2.txt - macierze sa wypelnione cyframi 1-9 do if [ $liczba1 -gt 9 ] then liczba1=1 fi
liczba2=$((10-$liczba1))
if [ $wspX -eq $wymiar ] then echo $liczba1 | awk '{ printf "%d\n", $1 }' >> dane1.txt echo $liczba2 | awk '{ printf "%d\n", $1 }' >> dane2.txt wspX=1 wspY=$(($wspY+1)) else echo $liczba1 | awk '{ printf "%d ", $1 }' >> dane1.txt echo $liczba2 | awk '{ printf "%d ", $1 }' >> dane2.txt wspX=$(($wspX+1)) fi
if [ $wspY -gt $wymiar ] then break fi
liczba1=$(($liczba1+1)) done
wspX=1 wspY=1 i=0 while [ $i -lt $ilosc ] #petla sumujaca macierze zawarte w plikach dane1.txt i dane2.txt do
if [ $wspX -gt $wymiar ] then wspY=$(($wspY+2)) wspX=1 fi
zmienna1=`cat dane1.txt | awk '{ print $"'$wspX'" }'` #wyciagniecie kolomny okreslonej wspolrzedna X zmienna1=`echo $zmienna1 | awk '{ print $"'$wspY'" }'` #wyciagniecie konkretnej cyfry zmienna2=`cat dane2.txt | awk '{ print $"'$wspX'" }'` zmienna2=`echo $zmienna2 | awk '{ print $"'$wspY'" }'` suma=$((zmienna1+zmienna2))
if [ $wspX -eq $wymiar ] then echo $suma | awk '{ printf "%d\n", $1 }' wspX=1 wspY=$(($wspY+1)) else echo $suma | awk '{ printf "%d ", $1 }' wspX=$(($wspX+1)) fi
i=$(($i+1)) done misiek24 jest offline Odpowiedź z Cytatem
brograf - 10-01-2009 00:49
Przekomplikowany ten skrypt, tu masz prostsze rozwiązanie sumowania macierzy: http://viable.pl/tutorial/145/preview/
Tu masz kurs basha http://www.uw-team.org/index.php?id=arty/bash_kurs .
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|