|
|
Volumendaten - Abstand zwischen zwei Flächen |
|
Premutos |

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 29.05.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.05.2015, 14:29
Titel: Volumendaten - Abstand zwischen zwei Flächen
|
 |
|
 |
|
Moin Community
Ich habe 2 Volumendatensätze, im Grunde sind es zwei Flächen, optisch ähnlich einem Teppich, die übereinander im Raum liegen. Die beiden Flächen sind jeweils leicht wellig. Mich interessiert der Abstand der beiden Flächen zu einander.
Noch zur Info. Die obere Fläche ist in konstant aufgeteilte x und y Koordinaten eingeteilt. Auf Grund von Brechungseffekten ist das bei der unten liegenden Fläche nicht der Fall. Dort sind die Abstände der x und y Koordinaten immer unterschidlich. Für die z Koordinaten ist das bei beiden der Fall. Die Verteilung der z Koordinaten ist beliebig, folgt also keinenm Muster.
Die Koordinaten stehen für beide Flächen jeweils in 3 Matrizen für jede Koordinate (x, y und z). Insgesamt also 6 Matritzen. 2 für x, 2 für y und 2 für z. (Siehe Code). Die Testmatrizen im Code sind stark reduziert, da die original Matrizen 1500x2000 gross sind.
Mich interessiert jetzt der Abstand von jeder x/y Position der oberen Fläche zur naheliegendsten x/y Position der unteren Fläche. Da ich noch nicht als zu lange mit matlab arbeite, ist die Frage, ob es eine Funktion gibt die dies bewerkstelligt. Ich habe jetzt so auf anhieb keine Lösungsidee.
Tausend Dank im Voraus!
Gruss,
P.
|
|
|
|
|
kojoteKarl |

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.05.15
|
 |
|
 |
Wohnort: Freiberg
|
 |
|
 |
Version: R2013
|
 |
|
|
 |
|
Verfasst am: 30.05.2015, 11:46
Titel:
|
 |
Also wenn ich das richtig sehe, hast du ja immer genau so viele xy für oben wie für unten. Dann ist doch letztendlich der Abstand nur die Differenz, der z-Werte und das kannst du ja über eine Doppelschleife lösen.
Ich hab dein Text mal etwas modifiziert. So wird an jeder gleichen Stelle für x und y der z-Wert berechnet.
MfG
kojo
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 30.05.2015, 13:26
Titel:
|
 |
Zitat: |
for i = 1:Bb(1,2);
for j = 1:Bb(1,1);
abst=oz(j,i)-uz(j,i)
end
end |
hmm da hat sich ein kleiner tippfehler eingeschlichen. du hast vergessen bei abst den index mit reinzubauen. aber mann kann das auch ohne schleife machen mit oz-uz. aber das ist dann nur der vertikale abstand in z richtung und nicht zum naheliegensten punkt.
bei kleinen arrays könnte ich mir vorstellen einfach für jeden punkt aus einer fläche alle abstände zur anderen fläche zu berechnen. und dann immer den kleinsten zu nehmen. wobei das recht schnell sehr umfangreich werden kann wenn die flächen viele punkte haben.
irgenwie so
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 30.05.2015, 15:42
Titel:
|
 |
Hallo,
Noch ein genereller Tipp zur Effizienz:
Gruß, Jan
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 31.05.2015, 21:29
Titel:
|
 |
oh ja das stimmt natürlich wieder ein ansatz punkt zur beschleunigung gelernt. danke jan. man denkt als leihe immer nicht direkt dran
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 01.06.2015, 01:24
Titel:
|
 |
Hallo Winkow,
:-) Als Laie gehst Du hier im Forum aber nicht durch.
Wenn es nur um ein paar Millionen Zahlen geht ist es nicht so wichtig, ob man sich die überflüssigen Wurzeln spart. Aber es ist eine gute Idee beim Programmieren immer auch an wirklich große Arrays zu denken.
Neben SQRT sind auch EXP und POWER teuer. Wann immer diese Befehle auftauchen lohnt es sich genau hinzuschauen, ob sie vermieden werden können.
Gruß, Jan
|
|
|
Premutos |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 29.05.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.06.2015, 20:23
Titel:
|
 |
|
|
|
|
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.
|
|