|
mathphys |

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 19:30
Titel: Koeffizienten löschen
|
 |
Hallo
Gibt es einen Befehl in MATLAB bei dem Koeffizienten einer Matrix vergleichen werden?
Ich möchte in einer mxn Matrix alle Koeffizienten die nicht Gleich sind löschen.
Ich habe bis jetzt nur den befehl sort gefunden, der mir die Koeffizienten der größe nach sortiert, doch das ist nicht das was ich brauche, oder kann man auch damit hier etwas anfangen?
Grüße
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 20:06
Titel:
|
 |
Hallo,
ich fürchte, die Frage musst du für mich präzisieren:
Mit was sollen die Matrixelemente verglichen werden?
Was soll herauskommen? Wenn in einer Matrix Elemente gelöscht werden, ginge ja die Matrixstruktur verloren.
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 20:12
Titel:
|
 |
Hi,
ich dachte mir das so, dass alle Einträge miteinander verglichen werden, ob sie gleich sind oder nicht. Also ob beispielsweise der Eintrag bei Zeile 20, Spalte 12 der selbe ist wie bei Zeile 9 und Spalte 8 und das eben für alle Koeffizienten und überall da wo sie nicht gleich sind, soll von mir aus nichts stehen.
Ich habe vorhin etwas über cell arrays gelesen. Vielleicht die Matrix in so etwas umwandeln, damit dann an entsprechenden Stellen nur [] im Array steht?
Ich habe halt das Problem, dass ich eine große Matrix habe, dessen Elemente Längen sind (was ich nur dank dir hinbekommen habe ) und ich irgendwie herausfinden muss, wie ich nun zu den regelmäßigen Sechsecken komme.
Gruß
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 21:43
Titel:
|
 |
Hallo,
ob solche paarweisen Vergleiche etwas bringen? Mal abgesehen davon, dass du bei 20 Vektoren meiner Zählung nach über 10^16 solche Vergleiche hättest.
Rein interessehalber: steckt da eine praktische Anwendung dahinter? Falls ja, lohnt es sich evtl., in dem Gebiet zu schauen, ob jemand mal was ähnliches gemacht hat, um einen passenden Algorithmus zu identifizieren.
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 22:26
Titel:
|
 |
|
 |
|
Hi,
auch ich sehe das ausufernd
Ich versuche einen anderen Weg. Doch zumindest habe ich hier und heute schon viel über matlab gelernt. Hab Dank dafür
Ja, das hier hat eine praktische Anwendung. Man will bei bestimmten Molekülen wissen welche energetischen Übergänge erlaubt sind, wenn man mit einem bestimmten Laser darauf feuert. Dazu sind quantenmechanische Berechnungen nötig, welche in einem ersten Schritt die Molekülgeometrie benötigen. Diese kennt man nicht und diese kann schnell sehr groß werden
Jedoch weiß man aufgrund der Eigenschaften des Moleküls, dass es Isoalloxazin (Sieh das Bild im link an, dann verstehst du wovon ich in all den Threads rede) besitzt. Dies kann man nutzen um einen Orientierungspunkt zu besitzen. In meiner Arbeit suche ich diese Ringe und führe danach Rechnungen aus, um erlaubte Energie Zustände zu finden.
Ich habe recherchiert ob andere das Problem gelöst haben, doch nichts gefunden. Ich muss es selbst machen. Mit brute-force kann ich leben, doch auch das muss man erstmal programmiert bekommen, vor allem wenn man ganz neu ist in dieser Informatik Welt...
Gruß
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 10:26
Titel:
|
 |
Harald hat Folgendes geschrieben: |
ich fürchte, die Frage musst du für mich präzisieren:
Mit was sollen die Matrixelemente verglichen werden?
Was soll herauskommen? Wenn in einer Matrix Elemente gelöscht werden, ginge ja die Matrixstruktur verloren.
|
Bei nochmaligen darüber nachdenken:
Wenn ich alle Koeffizienten der Matrix löschen würde, welche nicht gleich sein. dann könnte man mit einer Abfrage eine Liste von möglichen Punkte gewinnen, welche für das Sechseck in Frage kämen.
Mna müsste also erst einen Test programmieren, welche der Koeffizienten alle gleich sind.
Doch wie würde so etwas gehen?
Gruß
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 10:35
Titel:
|
 |
Hallo,
das ist immer noch dasselbe logische Problem.
Sagen wir, du hast 100 Mal Abstand 0 (weil von sich selbst), 100 Mal Abstand ca. 0.5 und 100 Mal Abstand ca. 1 und noch vieles mehr.
Wie definierst du da gleiche Koeffizienten? Vor allem hast du ja immer noch das Problem der Rundungsungenauigkeiten?
Grüße,
Harald
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 10:42
Titel:
|
 |
Wie wäre es mit sortieren?
Jetzt kannst du den Vektor values nach gleichen Einträgen der Reihe nach durchgehen. Über row und col bekommst du die Stelle des value in der Matrix raus.
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 11:35
Titel:
|
 |
@Harald
Ich hoffe, dass es neben der Null nur ein Paar von gleichen Werten gibt.
@DSP
Dein Code bringt den Fehler
Zitat: |
??? Error using ==> sort
Too many output arguments. |
Grüsse
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 11:50
Titel:
|
 |
Sorry...das war Schwachsinn. Da ich habe ich find und sort durcheinander gebracht Man kann mit Sort auch nur Zeilen oder Spalten sortieren...deshalb wird dir das hier leider auch nichts nützen.
Du könntest aber mit
arbeiten und der Reihe nach deine Werte der Matrix durchgehen. Wenn in index mehr als 1 Wert steht, sind sie doppelt. Das n musst du in einer Schleife von 1 bis max laufen lassen
|
|
|
_Peter_ |

Moderator
|
 |
Beiträge: 537
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.10, 2010a
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 12:13
Titel:
|
 |
Hallo mathphys,
wenn cih dein Problem richtig verstehe, dann könnte unique für dich interessant sein.
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 12:13
Titel:
|
 |
Hi
Danke für die Hilfe. Deinen Code werde ich gleich nach der Mittagspause zu verstehen versuchen. Bis dahin eine andere Frage:
Ich hätte auch eine Idee wie man das Problem angehen könnte. Ich weiss nur nicht genau wie das im Detail programmiert wird. Die Idee ist:
Vier for-Schleifen. Eine für die i-te Zeile und eine für die j-te Spalte lesen alle Koeffizienten aus und speichern diese so ab, dass dem Koeffizient später Zeilen und Spalte wieder zugeordnet werden kann. Bleiben noch zwei for Schleifen übrig, welche für die i-te Zeile und j-te Spalte alle Koeffizienten miteinander vergleichen sollen, außer sich selbst und die Null.
Wie würde so etwas umgesetzt werden können?
Grüsse
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
|
|
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.
|
|