Konwersja formatu macierzowego deal.ii na zgodny z Matlab
Format wyjściowy biblioteki deal.ii
|
1 2 3 4 5 6 |
(0,0) 6.73636e-09 (0,1) 2.76187e-09 (0,2) -3.27721e-09 (0,3) -3.6236e-11 (0,4) 1.13877e-08 (0,5) -5.36419e-10 |
Matlab wymaga numeracji od 1 i linii ze spacjami zaraz przecinków:
|
1 2 3 4 5 6 |
1 1 6.73636e-09 1 2 2.76187e-09 1 3 -3.27721e-09 1 4 -3.6236e-11 1 5 1.13877e-08 1 6 -5.36419e-10 |
Skrypt dokonujący konwersji:
|
1 2 3 4 5 6 7 8 9 |
#!/usr/bin/python import sys import re with open(sys.argv[1]+".new", 'a+') as w: with open(sys.argv[1]) as file: for line in file: m = re.match(r'\((.*?),(.*?)\)(.*?)$', line) w.write('{0} {1} {2}\n'.format(int(m.group(1))+1, int(m.group(2))+1, m.group(3))) |
Uruchomienie:
|
1 |
./matrix_convert.py A.dat |
