|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2012, 19:51
Titel: Transponierte Matrix
|
 |
Weiss jemand wie ich eine quad. Matrix transponiere indem ich die Elemente an der Diagonalen spiegel? Am besten mit 2 for-Schleifen
und ich will nur in der Matrix vertauschen
Schon mal danke für Antworten
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.02.2012, 20:02
Titel:
|
 |
Hallo,
was spricht gegen
Grüße,
Harald
|
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.02.2012, 20:14
Titel:
|
 |
Das würde doch dies zur folge haben
K>> U
6 7 0 4
8 3 0 6
4 2 6 6
0 6 5 7
K>> u'
ans =
6 8 4 0
7 3 2 6
0 0 6 5
4 6 6 7
hier ist die Matrix doch nicht an der Diagonalen gespiegelt....wollte ich gerade schreiben....aber ist sie doch.......
Hilft mir nur leider nicht weiter da ich durch for-Schleifen vertauschen will
wobei will=muss bedeutet
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.02.2012, 20:28
Titel:
|
 |
Hallo,
dann handelt es sich wohl um eine Übung oder Hausaufgabe. Da hast du wenig davon, wenn ich dir die fertige Lösung hinschreibe. Also die Frage: wie sehen deine bisherigen Ansätze aus?
Grüße,
Harald
|
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 15:34
Titel:
|
 |
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 15:42
Titel:
|
 |
Sippi hat Folgendes geschrieben: |
Mein Ansatz war bisher
|
mehr sinn wenn dann
aber ist auch nicht das was ich genau wollte
jetzt sind nur die reihen gedreht
muss ja die reihen zu spalten ändern
|
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 15:48
Titel:
|
 |
Sopp
beim letzten macht die for-schleife ja keinen sinn, mehr die kann ja weg
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 15:57
Titel:
|
 |
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 16:32
Titel:
|
 |
Da man es, wie oben geschrieben, nur mit vertauschen innerhalb der Matrix lösen soll ist das nicht möglich leider..... bzw denke ich das dieser weg dann ausgeschlossen ist da man eine weitere matrix zur hilfe nimmt
aber bei mir überschreibt sich auch immer alles wenn ich es in einer mache :/
|
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 16:42
Titel:
|
 |
Geht das überhaupt? Wenn ich innerhalb einer Matrix die Positionen ändere überschreibe ich und verliere die restlichen Werte so das sie beiden Hälften Identisch hat.
Die Aufgabe ist eine aus den Übungen des letzten Semesters die ich zur Vorbereitung machen wollte....besitze zur überprüfung aber keine Unterlagen
".......Die Aufgabe soll allein durch Vertauschungen in der Matrix gelöst werden......."
oder soll das gar nicht ausschließen das ich eine Matrix a und eine b benutze?
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 16:59
Titel:
|
 |
ja es geht auch ohne 2 matritzen zu benutzen. es sind dann in der forschleife 3 schritte nötig. die schleifengrenzen sind dann auch anders. du musst zu den einzelnenen elementen das andere elemente addieren bzw wieder abzihen. ich habs schonmal programmiert und es geht biss auf nen rundungsfehler von eps. da du ja üben willst belass ich es mal bei diesen tipps.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 19:01
Titel:
|
 |
Hallo Sippi,
Es ist einfach möglich eine quadratische Matrix zu transponieren. Eine Addition der Elemente ist dazu nicht erforderlich. Man muss lediglich jeweils ein Element in einer temporären Variable zwischen speichern, wie bei jeder Swap-Operation.
In Matlab ist es sinnfrei die Transponierung "in-place", also in der Orginal-Matrix, vorzunehmen, weil Matlab bei der Änderung eines Elements sowieso die ganze Matrix kopiert. In C wäre eine "in-place" Transponierung dagegen effizienter.
Wenn es immer noch nicht klar ist, wäre "inplace" ein hilfreiches Stichwort für eine Suche im Netz...
Gruß, Jan
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 19:27
Titel:
|
 |
Jan S hat Folgendes geschrieben: |
Hallo Sippi,
Es ist einfach möglich eine quadratische Matrix zu transponieren. Eine Addition der Elemente ist dazu nicht erforderlich. Man muss lediglich jeweils ein Element in einer temporären Variable zwischen speichern, wie bei jeder Swap-Operation.
In Matlab ist es sinnfrei die Transponierung "in-place", also in der Orginal-Matrix, vorzunehmen, weil Matlab bei der Änderung eines Elements sowieso die ganze Matrix kopiert. In C wäre eine "in-place" Transponierung dagegen effizienter.
Wenn es immer noch nicht klar ist, wäre "inplace" ein hilfreiches Stichwort für eine Suche im Netz...
Gruß, Jan |
ich hatte es aber so verstanden das keine 2. variable verwendet werden soll. auch keine temporäre
|
|
|
Sippi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 19:33
Titel:
|
 |
also mit dieser varriante
So hab ich die erste Spalte wie die erste Zeile....jedoch funktioniert es danach nicht mehr da die Werte ja überschrieben wurden......
so gilt das gleiche für die letzte Spalte und letzte Zeile und das gleiche Problem besteht.....
meine Überlegung ist es
eine for-schleife bis zur hälfte laufen zu lassen vom beginn
und eine zweite vom ende bis zur mitte.....
aber da wird es doch dann auch zum problem kommen da werte überschrieben wurden........und es funktioniert ja gar nicht die grenze so einfach zu verschieben
wenn ich i=1:3 k=1:3 setze macht er es ja nicht für 3/5 der matrix
sondern ändert dann schon in der ersten spalte nur einen teil
wirklich sinnvoll komme ich nicht vorran
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.02.2012, 21:18
Titel:
|
 |
die diagonale kannst ja so lassen. also lässt du einen schleife von k=2:n laufen und die andere von l=1:k-1.
ist im grundegenommen einfach. wirst schon drauf kommen
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|