|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 15:59
Titel:
|
 |
Ich danke dir für deine Mühen. Ich möchte versuchen in Zeilen zu arbeiten, da ich sonst komplett verwirrt bin, was ich da eigentlich mache. Man sollte das Ziel nicht aus den Augen verlieren?
Ein paar Fragen zur Interpretation: Die matrix temp entsteht doch, dass in jedem Schleifendurchgang eine Zeile von allen anderen abgezogen wird.
Wie sehe ich an dem Code welche Zeile von allen anderen abgezogen wird? in bsxfun steht als zweites Argument ja die ganze Matrix.
Wie lässt sich dies verallgemeinern, dass diese Operation für alle Zeilen durchgeführt wird?
Gruß
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 16:09
Titel:
|
 |
Hallo,
ob die Vektoren nun in Zeilen oder Spalten stehen, sollte relativ egal sein? Es gibt ja Zeilen und Spaltenvektoren.
Für MATLAB ist es "natürlicher", wenn die Vektoren in Spalten stehen - nicht zuletzt da eine Matrix im Speicher linear - und zwar spaltenweise - abgelegt wird.
Der bsxfun-Befehl wird ja in der for-Schleife durchgeführt. In jeder Iteration wird von der gesamten Matrix (2. Argument) eine Zeile (nämlich die k-te, siehe 3. Argument) abgezogen. Es ist die Genialität von bsxfun, dass das tatsächlich klappt und spaltenweise durchgeführt wird.
Eine Verallgemeinerung in der Hinsicht, dass die Operation für alle Zeilen gleichzeitig durchgeführt wird, ist schwierig bis unmöglich. Deshalb habe ich auch die for-Schleife verwendet. Oder welche Art der Verallgemeinerung meintest du?
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 16:16
Titel:
|
 |
Hi
ich verliere leicht den Überblick von meinem Programmier Ziel, daher bin ich nicht sicher ob ich das verallgemeinern muss oder nicht.
Was ich hier machen möchte ist eine Liste gewinnen mit allen Abständen von allen Punkten zueinander, damit ich diese dann sortieren kann in gleich lange und nicht gleich lange Abstände, damit ich so ein regelmäßiges Sechseck in den Daten finden kann.
Das was bsxfun macht klingt super, doch am Ende habe ich bei diesem code in der matrix temp eine Dimension von mx3, genau so wie auch die Matrix aus der die Daten kommen. Alle möglichen Differenzen müssen doch viel, viel mehr sein, kombinatorisch gedacht.
Oder stehe ich da jetzt auf dem Schlauch?
Gruß
p.s.
ich glaube ich muss dir einen Kuchen backen und nach München schicken. Ist ja mega nett wie viel Hilfe ich hier bekomme
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 16:21
Titel:
|
 |
Hallo,
temp steht bei mir für temporär/temporary. Die Ergebnisse der Berechnung findest du in diffValues. Wie schon vorher erwähnt ist diffValues(i,j) die Norm der Differenz der i-ten und j-ten Spalte (bzw. Zeile, je nachdem welche Variante des Codes du verwendest).
Nimm dir doch, wie ich es gemacht habe, ein einfaches Beispiel und schau dir da das Ergebnis an...
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 16:32
Titel:
|
 |
Hi
In der Matrix diffValues steht jeder einzelne Eintrag für den Abstand zweier Punkte oder?
Woher weiß ich genau welche Punkte das sind? Wenn ich beispielsweise den Koeffizient in der 20. Zeile und 18. Spalte nehme, woher weiss ich dann welcher Abstand das ist?
Das ist sehr wichtig, denn wenn ich in diffValues nach gleichen Werten suche um mein Sechseck zu finden, dann muss ich ja wissen zu welchen Punkte die gehören. Punkte natürlich aus den ursprünglich eingelesenen Daten, bei mir data_final.
Ja, du hast Recht, ich werde mir das in Ruhe mit einer kleinen Beispiel Matrix noch ansehen.
Grüsse
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 16:36
Titel:
|
 |
Hallo,
Zitat: |
Wenn ich beispielsweise den Koeffizient in der 20. Zeile und 18. Spalte nehme, woher weiss ich dann welcher Abstand das ist? |
Der Abstand zwischen dem 20. und 18. Vektor. Kann man sich vorstellen wie im Straßenatlas die Entfernungstabelle zwischen verschiedenen Städten.
http://www.auslandversicherung.de/e.....stabelle_deutschland.html
Nur dass hier eben die Nummern der jeweiligen Vektoren daneben bzw. drüber stehen.
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2011, 16:40
Titel:
|
 |
WOW, ich hätte jetzt mit irgend einer schlimm komplizierten Erklärung gerechnet, doch dass das so klar interpretiert werden kann.
Du hast recht, mit Matrizen zu arbeiten, auch wenn ich noch Bauchweh habe, ist wirklich viel besser, als wenn ich das mit ewigen for schleifen und eval Befehlen getan hätte.
Danke, habt alle vielen Dank. Ich habe das Thema dann als beantwortet markiert
_________________
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:15
Titel:
|
 |
Ich möchte das Thema weiter diskutieren, da mit der Abstadsmatrix vielleicht doch erfolg erzielt werden kann?
Frage an euch:
Wie könnte man nun, mit dieser Matrix herausfinden, welche Punkte für ein regelmäßiges Sechseck in Frage kämen?
Für Tipps bin ich dankbar.
Grüsse
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 10:26
Titel:
|
 |
Hallo,
ich bin bei deiner Frage schon davon ausgegangen, dass das zusammenhängt.
Rückfragen in diesem Zusammenhang:
- ist die ungefähre Seitenlänge des Sechsecks bekannt?
- das Sechseck sollte wohl (näherungsweise) in einer Ebene liegen, d.h. es reicht nicht, die Abstände der Punkte zu überprüfen?
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 10:28
Titel:
|
 |
Hallo
nein, es ist leider nichts bekannt, außer das man weiss, dass die Sechsecke aneinander gesetzt sind. So wie in dem Bild von dem link den ich gestern schickte.
Ja, sie sind leider nicht perfekt in einer Ebene. Daher auch der Epsilon-Umgebung Thread gestern.
Abstände alleine würden nicht reichen, doch bei Punkten, bei denen die Abstände zu groß wären, wüsste man, dass sie nicht dazu gehören. Auch wenn es kein perfektes Sechseck ist, so ist es das fast und Punkte die dann ganz weit weg sind, könnte man so eliminieren.
Viele Grüsse
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 10:37
Titel:
|
 |
Hallo,
zur besseren Vorstellung des ganzen bitte zwei Sachen bereitstellen:
1) ungefähre Anzahl der Punkte
2) einen 3D-Scatter Plot der Punkte
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 11:42
Titel:
|
 |
Hi
die Anzahl der Datenpunkte schwnakt sehr. Aus der Chemie weiss ich, dass ich alle Atome die nicht Kohlenstoff oder Stickstoff sind löschen kann. Das macht ein Programm mit dem Namen Gaussian für mich. Was ich dann erhalte habe ich hier geplottet mit dem Befehl plot3. Dies ist aber nur ein Beispieldatensatz. Es können auch mehr Punkte sein. In den meisten Anwendungen jedoch kaum mehr als ca. 100, da das Protein von Gaussian abgeschnitten wird.
Gruß
Beschreibung: |
|
 Download |
Dateiname: |
Bildschirmfoto.png |
Dateigröße: |
35.83 KB |
Heruntergeladen: |
683 mal |
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 13:49
Titel:
|
 |
Hallo,
kannst du das mal als Datensatz anhängen?
Wenn ich mal länger Zeit habe, würde ich mich mal dran versuchen.
Grüße,
Harald
|
|
|
mathphys |
Themenstarter

Forum-Century
|
 |
Beiträge: 130
|
 |
|
 |
Anmeldedatum: 03.06.11
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 16:40
Titel:
|
 |
Hi
das wäre wirklich mega lieb von dir. Jedoch möchte ich auch nicht, dass du mir meinen Job machst. Ich muss und will es ja selbst lernen und da ich noch öfter in matlab programmieren will, möchte ich natürlich lernen wie man es richtig macht. Freue mich darauf, wenn morgen die beiden Bücher mit der Post kommen, die ich bestellt habe.
das sind die Datenpunkte aus dem Plot:
Grüsse
_________________
Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2011, 21:48
Titel:
|
 |
|
 |
|
Hallo,
ich habe es nun selbst probiert und muss sagen, dass das zum Einstieg ein sehr, sehr verzwicktes Problem ist - oder ich mache es zu kompliziert. Ich wollte jedenfalls verifizieren, dass der von mir an anderer Stelle vorgeschlagene Algorithmus sinnvoll ist, und das geht eben manchmal nur, indem man's umsetzt. Wie auch immer, es war auch für mich eine schöne Herausforderung.
Der Einfachheit habe ich ein regelmäßiges Sechseck als ein Sechseck definiert, in dem benachbarte Punkte etwa gleichweit voneinander entfernt sind.
Lass mal die Hauptdatei laufen
...
und du siehst:
- der Code sieht nicht schön aus. Ich habe jedoch Schwierigkeiten, ihn schöner zu gestalten.
- die Sechsecke werden gefunden.
- sie werden teilweise mehrfach gefunden
- es werden auch Sechsecke gefunden, die obiger Definition genügen, aber kaum Sechsecke im von dir angedachten Sinn sind (als mir das klar wurde, musste ich doch lachen...)
Ich habe das ein wenig kommentiert und auch Kommentare an den Stellen hinterlassen, wo du noch dran arbeiten solltest.
Natürlich kannst du jetzt versuchen, das als Programmierübung selber und von vorne zu machen. Ich fürchte aber, dass du als Einsteiger/in in MATLAB sehr lange (mehrere Tage bis Wochen) damit zubringen würdest.
Das Verstehen und Anpassen/Verbessern meines Vorschlags dürfte für den Anfang schon schwierig genug sein. Aber vielleicht fällts ja nach dem Studium des einführenden Buchs leichter.
Viele Grüße, und viel Spaß beim Lernen von MATLAB
Harald
P.S.: Mir fällt noch ein: 0.05 und 0.075 sind eher willkürlich gewählte Toleranzen.
P.P.S.: Falls du irgendwann n-Ecke statt Sechsecke suchst: ich bin raus
Beschreibung: |
|
 Download |
Dateiname: |
findnext.m |
Dateigröße: |
332 Bytes |
Heruntergeladen: |
344 mal |
Beschreibung: |
|
 Download |
Dateiname: |
findeSechseck.m |
Dateigröße: |
3.7 KB |
Heruntergeladen: |
348 mal |
|
|
|
|
Gehe zu Seite Zurück 1, 2, 3 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.
|
|