|
|
Höhenprofil aus Vertikal- und Horizontalschnitten |
|
rumus001 |
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 04.04.14
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2013a 32Bit
|
|
|
|
|
|
Verfasst am: 04.04.2014, 10:10
Titel: Höhenprofil aus Vertikal- und Horizontalschnitten
|
|
|
|
|
Hallo allerseits,
folgende Problemstellung:
Ich habe eine Draufsicht einer Landschaft deren Höhenlinien farblich dargestellt sind (höhster punkt rot, niedrigster punkt blau usw.)
Wenn man dieses Höhenprofil mittig horizontal und vertikal in aufschneiden würde kann man jedes dieser Schnitte folgender maßen beschreiben:
Horizontaler Schnitt:
h = [-31:1:32] % 64 Punkte in der Horizontalen, Schrittweite 1
f(h) = 0.6*exp(-h.^2/8) + 0.5*exp(-h.^2/128);
Vertikaler Schnitt:
v = [-15:1:16] % 32 Punkte in der Vertikalen, Schrittweite 1
f(v) = exp(-v.^2/7);
Und jetzt die entscheidende Frage:
Wie bekomme ich es denn hin, eine Matrix zu erstellen die
quasi die Draufsicht dieses dreidimensionalen Profils darstellt.
Jedes Element der Matrix soll eine Höheninformation erhalten von 0 bis beispielsweise 1.
Im Anhang habe ich zwei PNG-Dateien hinzugefügt wie die Schnitte
(Horizontal und Vertikal) ungefähr aussehen.
Anmerkung:
Ich weiss dass es solche Befehle plot3, mesh und surf exestieren,
diese benötigen/ermöglichen aber nur eine quadratische Verteilung,
ich dagegen habe eine Rechteckverteilung mit unterschiedlicher Länge/Breite.
Ich würde mich über paar Tipps oder Ideen von Profis freuen,
meine Wenigkeit hat ein eher Grundlagenwissen in Matlab deshalb
habe ich dieses Forum aufgesucht und erhoffe mir ein positives Ergebnis.
Gruß
Rumus
Beschreibung: |
Vertikalschnitt des Profils |
|
Download |
Dateiname: |
Vertikalschnitt.PNG |
Dateigröße: |
106.46 KB |
Heruntergeladen: |
552 mal |
Beschreibung: |
Horizontalschnitt des Profils |
|
Download |
Dateiname: |
Horizontalschnitt.PNG |
Dateigröße: |
63.03 KB |
Heruntergeladen: |
512 mal |
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 04.04.2014, 11:10
Titel:
|
|
halli hallo:
die 1 kannst du auch weglassen.
ist keine gültige matlab syntax.
Zitat: |
Ich weiss dass es solche Befehle plot3, mesh und surf exestieren,
diese benötigen/ermöglichen aber nur eine quadratische Verteilung, |
was meinst du damit? was für eine quadratische verteilung?
deine beiden funktionen haben im punkt 0 nicht die selben werte. das finde ich verwundernd wenn es schnitte mittig durch den selben körper sind.
des weiteren bin ich mir nicht sicher wie du beide funktionen miteinander verrechnen willst. die eine funktion beschreibt ja quasi nur die höhe. der anderen funktion in der mitte. hat aber keine weiteren angaben über ihren verlauf. eine infacher weg währe sicherlich einfach die eine funktion mit der anderen zu multiplizieren da sie eh nur die höhe 1 hat ^^
so in der art:
_________________
richtig Fragen
|
|
|
rumus001 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 04.04.14
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2013a 32Bit
|
|
|
|
|
|
Verfasst am: 04.04.2014, 12:17
Titel:
|
|
Wau so schnell geantowertet und genau das was ich haben wollte!
PERFEKT!
Genau so wollte ich es haben. Besten Dank!
Da sieht man dass ein Profi dran gewesen ist!
Mit quadratisch meinte ich eher sammetrische verteilung der x- und y-Werte.
Ich könnte mich auch geirrt haben, so habe ich es zumindest aus einem
meiner Grundlagenbücher interpretiert.
Ja es stimmt, tatsächlich haben die Funktionen nicht die gleichen Höhen im Nullpunkt. (Wie blöd von mir)
Meine Idee ist halt gewesen die Draufsicht zu generieren aus beiden seitlichen Ansichten. Und diese Ansichten werden bei diesem speziellen Profil mit den Gauss-Funktionen (Normalverteilung) beschrieben!
Vielen Dank nochmals, es hat mich in wenigen Minuten viel weiter
gebracht als ich es in drei Tagen selber geschafft hatte.
|
|
|
rumus001 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 04.04.14
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2013a 32Bit
|
|
|
|
|
|
Verfasst am: 07.04.2014, 10:48
Titel:
|
|
eine Zusatzfrage noch zu obigem bereits gelöstem Problem:
Die Funktion f2 = @(v) möchte ich erweitern und zwar so, dass sie sich unterschiedlich verhält abhängig von den Werten im
Intervall v=[-15:16];
f2 = @(v) = exp(-v.^2/7); % für v < 0
f2 = @(v) = exp(-v.^2/29); % für v > 0
Wie kann man sowas denn machen?
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 07.04.2014, 12:08
Titel:
|
|
hmm entweder du schreibst dir eine funktion in ein extra function script mit if abfrage oder du machst so etwas:
_________________
richtig Fragen
|
|
|
rumus001 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 04.04.14
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2013a 32Bit
|
|
|
|
|
|
Verfasst am: 07.04.2014, 12:41
Titel:
|
|
Hat geklappt, prima!
Es haben nur die Pünktchen jeweils hinter den Bedingungen-Klammern gefehlt hier: (v>0).*blabla und hier: (v<=0).* blabla
und ergab entsprechend ne Fehlermeldung.
Vielen Dank!
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 07.04.2014, 12:47
Titel:
|
|
kleine anmerkung noch. bitte benutze zukümpftig die code umgebeung. macht das ganze leserlicher. (das ist nicht optional )
und des weiteren solltes du nicht
am anfang benutzen. warum wurde hier im forum schon oft besprochen. das macht das debuggen unmöglich und alles was das debuggen erschwert hat im code nix verloren es ist auch nicht nötig wenn sauber programmiert wird
grüße winkow
_________________
richtig Fragen
|
|
|
rumus001 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 04.04.14
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2013a 32Bit
|
|
|
|
|
|
Verfasst am: 07.04.2014, 13:18
Titel:
|
|
Vielen Dank für den Hinweis!
Mache ich ab sofort so wie erwünscht!!!
|
|
|
rumus001 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 43
|
|
|
|
Anmeldedatum: 04.04.14
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2013a 32Bit
|
|
|
|
|
|
Verfasst am: 13.06.2014, 08:44
Titel:
|
|
Hallo,
ich will es nochmal wissen...
also in dem folgenden Code
verstehe ich nicht ganz was diese Zeile macht:
Als ich diese Frage im April 2014 hier stellte, stand für mich im Vordergrund eine schnelle Lösung für das vorher erwähnte Problem zu finden.
Nun ist dieses Stückchen Quellcode ein Teil eines umfangreichen Programms zu dem ich eine ausführliche Dokumentation schreiben möchte/muss.
Verstehe ich es richtig wenn ich sage, dass die oben beschriebene Funktion
f3(v,h), die Funktionswerte anstatt aus den Vektoren "v" und "h", aus den Matritzen "V" und "H" berechnet?
|
|
|
|
|
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 - 2024
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.
|
|