|
Autor |
Blockmatrix Nebendiagonale |
|
LamyOriginal
Aktiv  Dabei seit: 20.11.2018 Mitteilungen: 410
 | Themenstart: 2022-04-18
|
Hallo, ich mochte so eine dünnbesetzte $(n\times n)$-Matrix erstellen:
$A=\begin{pmatrix}
A_m & I_m & & 0 \\
I_m & A_m & \ddots & \\
& \ddots & \ddots & I_m \\
0& & I_m & A_m \end{pmatrix}$
mit $A_m, I_m$ Dimensionen $(m\times m)$, $I_m$ dabei die Einheitsmatrix und $m=\sqrt n$.
Ich habe mit D_r=repmat({A_m},1,m); D=blkdiag(D_r{:}), die gewünschte Matrix $A_m$ auf die Hauptdiagonale bekommen, aber wie bekomme ich $I_m$ auf die untere und obere Nebendiagonale? Danke!
|
Profil
|
Delastelle
Senior  Dabei seit: 17.11.2006 Mitteilungen: 2206
 | Beitrag No.1, eingetragen 2022-04-18
|
Hallo LamyOriginal!
Man kann in Matlab gut mit Zeilen und Spalten arbeiten.
Dazu kann man
z.B.
\sourceon Matlab
for zeile = 1:m
for spalte = 1:n
if (zeile == spalte + 1) // reicht das schon; ist das korrekt?
...
end
end
\sourceoff
schreiben.
Viele Grüße
Ronald
Edit:
schau mal:
\sourceon Matlab
a(2,1) = lala;
for index = 2:n-1
iminus = index - 1;
iplus = index + 1;
a(iminus,index) = lala;
a(iplus,index) = lala;
end
a(n-1,n) = lala;
\sourceoff
|
Profil
|
zippy
Senior  Dabei seit: 24.10.2018 Mitteilungen: 4231
 | Beitrag No.2, eingetragen 2022-04-19
|
diag(v,k) liefert eine Matrix, deren $k$-te Nebendiagonale mit den Elementen des Vektors $v$ gefüllt ist.
Für Arrangements mit Blockmatrizen kannst du diese Funktion mit dem Kronecker-Produkt kron(A,B) kombinieren.
Das folgende Beispiel liefert für ein gegebenes $m$ eine Matrix wie im Startbeitrag, wobei für $A_m$ eine Zufallsmatrix eingesetzt wird:
\sourceon matlab
m = 3
A_m = rand([m, m])
N = diag(repelem(1, m - 1), 1)
A = kron(eye(m), A_m) + kron(N + N.', eye(m))
\sourceoff
--zippy
|
Profil
|
LamyOriginal
Aktiv  Dabei seit: 20.11.2018 Mitteilungen: 410
 | Beitrag No.3, vom Themenstarter, eingetragen 2022-04-19
|
Vielen Dank für eure Hilfe, ich habe es hinbekommen!
|
Profil
|
LamyOriginal hat die Antworten auf ihre/seine Frage gesehen. LamyOriginal hat selbst das Ok-Häkchen gesetzt. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|