|
Liebe DMUGs, ich versuche verzweifelt, mittels des Union[] Befehls Zeilen von Matrizen so zu kombinieren, dass der Test auf Gleichheit nur auf eine Untermenge der Listenelemente angewendet wird. Genau genommen handelt es sich dabei um Erdbebenkataloge , die ich so kombinieren muss, dass Eintraeg erkannt werden , die gleiches Datum und Uhrzeit haben. Ich habe das Problem auf das nachfolgend geschilderte reduzieren koennen: Liste 1 besteht beispielsweise aus zwei Zeilen mit jeweils 9 Elementen, die jeweils geographische Laenge, geographische Breite, Jahr, Monat, Tag, Magnitude, Herdtiefe, Stunde, und Minute eines Erdbebens darstellen. Das ist der Auszug eines Erdbebenkataloges eines Institutes. cat1 = {{7.683, 50.15, 1846,7, 29, 4.98, 10, 21, 24.}, {7.683, 48.117, 1825, 11, 24, 2.8, 4, 1, 0.}}; Liste 2 besteht aus nur einer Zeile: cat2 = {{7.682, 50.157, 1846, 7, 29, 5.5, 10., 21, 24.}}; Dabei handelt es sich um den Auszug aus dem Erdbebenkatalog einer anderen Organisation. Ich moechte nun beide so kombinieren, dass der Test auf Gleichheit nur auf den "Spalten" 3,4,5,8,9 gemacht wird, was dem Datum un dUhrzeit entspricht. Mit andern Worten, ich moechte dafuer sorgen dass die Beben die mit der gleichen Uhrzeit gemeldet werden, nicht doppelt weiterverarbeitet werden. Das versuche ich mit dem folgenden Code-fragment: sa[x_,y_] := (Join[Take[x,{3,5}],Take[x,{8,9}]] == Join[Take[y,{3,5}],Take[y,{8,9}]]); cat1 = {{7.683, 50.15, 1846,7, 29, 4.98, 10, 21, 24.}, {7.683, 48.117, 1825, 11, 24, 2.8, 4, 1, 0.}}; cat2 = {{7.682, 50.157, 1846, 7, 29, 5.5, 10., 21, 24.}}; cat3 = Union[cat1,cat2,SameTest->sa]; Print[TableForm[cat3]]; Das Ganze funktioniert aber nicht. Alle drei Zeilen erscheinen in cat3. Verueckterweise funktioniert es dann, wenn ich in Zeile 2 des ersten Katalogs, also cat1, das erste Element "7.683" auf eine ander Zahl setze. Mein Test hat aber mit diesem Listenelement garnichts zu tun, oder doch? Ist das ein bug in meinem Code oder in Mathematica? Ich bin fuer jeden Hinweis dankbar. Frank Scherbaum -- Frank Scherbaum, Institut fuer Geowissenschaften, University of Potsdam, POB 601553, D-14415 Potsdam, Germany, Tel. (+49-331)-977-2681, Fax. -2087 http://www.rz.uni-potsdam.de/u/Geowissenschaft/index.htm |