Guten Abend Daniel,
mit den padding functions sagen Sie etwa
In[67]:= Remove[quadraticMatrixMerge];
(* s is the additive overlap of matrix b into matrix a *)
quadraticMatrixMerge[a_?MatrixQ, b_?MatrixQ, s_?NonNegative] :=
Module[{o = Length[a] + Length[b] - s},
Nest[Transpose[PadRight[#, o]& /@ #]&, a, 2] +
Nest[Transpose[PadLeft[#, o]& /@ #]&, b, 2]
] /; {1, -1} . (Dimensions[a] - Dimensions[b]) == 0 && s <=
Min[Length[a], Length[b]]
machen eine Probe,
quadraticMatrixMerge[Array[x, {3, 3}], Array[y, {5, 5}], 1] // MatrixForm
und lösen Ihr Problem:
quadraticMatrixMerge[Array[x, {6, 6}], Array[y, {6, 6}], 3] // MatrixForm
Mit den besten Grüssen
Udo.
Nowak Robert wrote:
hi daniel,
In[46]:=
L=Array[l,{6,6}];
M=Array[m,{6,6}];
In[48]:=
L1=L//Join[#,0 Table[First@#,{3}]]&//Transpose//Join[#,0 Table[First@#,{3}]]&//Transpose;
In[49]:=
M1=M//Join[0 Table[First@#,{3}],#]&//Transpose//Join[0 Table[First@#,{3}],#]&//Transpose;
In[50]:=
L1+M1//MatrixForm
honorarnote folgt,
grüsse robert
-----Original Message-----
From: Daniel Froemmel [mailto:daniel.froemmel@XXXXXXX.de]
Sent: Wednesday, June 09, 2004 12:44 PM
To: demug@XXXXXXX.ch
Subject: Matrizen zusammenfassen
Hallo Mathematica-Experten,
ich habe zwei 6x6 Matrizen, die ich zu einer 9x9 Matrix zusammenfassen
will. Element 1,1
der ersten 6x6 Matrix soll auch Element 1,1 der 9x9 Matrix sein. Element
6,6 der zweiten
6x6 Matrix soll Element 9,9 der 9x9 Matrix sein. Sich überlagernde
Elemente sollen addiert
werden.
Wie mache ich (bzw. Mathematica) das am besten?
Es handelt sich um Elementsteifigkeitsmatrizen für eine einfache FEM-Übung.
Vielen Dank für die Aufmerksamkeit!
mfg Daniel