|
|
Rotationssymmetrische Matrix aus gegebenem Vektor erzeugen |
|
blueshark |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 09.01.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.01.2015, 13:23
Titel: Rotationssymmetrische Matrix aus gegebenem Vektor erzeugen
|
|
Hallo,
ich habe einen Vektor gegeben,
beispielsweise a=[1 2 3 4 3 2 1] und möchte daraus eine Martix erzeugen, welche Rotationssymmetrisch um den mittleren Wert (hier 4) ist.
Wie kann ich hierzu vorgehen? convn(a,a') erzeugt mir nur die um 90° gedrehten Werte, nicht jedoch die Zwischenwerte.
Im Voraus vielen Dank.
blueshark
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.01.2015, 16:18
Titel:
|
|
Kannst Du das Beispel a = [1 2 3 2 1] mal von Hand komplett ausrechnen, hier posten und dabei gleich ein bisschen darüber nachdenken, was genau Du willst?
|
|
|
blueshark |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 09.01.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.01.2015, 10:29
Titel:
|
|
ok ich erkläre es noch einmal auf eine etwas andere art und weise.
gegeben ist der vektor v=[1 3 4 3 1] einer radialen Verteilung.
Aus diesem möchte ich nun in eine Matrix M mit der selben radial symmetrischen Verteilung erzeugen. In diesem Falle wäre M
M=[0.1 0.7 1 0.7 0.1
0.7 1.7 3 1.7 0.7
1 3 4 3 1
0.7 1.7 3 1.7 0.7
0.1 0.7 1 0.7 0.1 ].
Ich suche Art und Weise dies mittels vorimplementierter Funktionen in Matlab zu realisieren. Da ich einige dieser Berechnungen auszuführen habe, ist es nicht so "geschickt" beispielsweise für jeden Vektor v einen curve-fit durchzuführen.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.01.2015, 11:02
Titel:
|
|
Hallo,
jetzt wissen wir aber immer noch nicht, wie die Elemente von M aus den Elementen von v berechnet werden sollen.
Ich hätte es z.B. so versucht
aber das enthält blöderweise nicht die von dir gewünschten Werte.
Grüße,
Harald
|
|
|
blueshark |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 09.01.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2015, 09:35
Titel:
|
|
Hallo Harald,
dankeschön schon mal für die Antwort.
Wenn ich mir die mittels des von Dir hier geposteten Codes erzeuge Matrix nv mit freqz2 plotte, erhalte ich die in Abbildung freqz2_nv dargestellte Funktion. Sie ist also lediglich zur Ebene Xz Symmetrisch.
Was ich suche ist jedoch folgende in der Abbildung freqz2_M dargestellte Matrix mit einer radialen symmetrie. Kann man so etwas irgendwie in Polarkoordinaten lösen?
Um dies zu erhalten brauchte man doch so etwas wie eine interpolierte funktion von v und müsste dann damit die funktionswerte eines gitters berechnen... Allerdings ist mir nicht so ganz klar wie man so etwas letztlich realisieren könnte.
Beschreibung: |
freqz_M. gewünschte Funktion |
|
Download |
Dateiname: |
freqz2_M.png |
Dateigröße: |
26.19 KB |
Heruntergeladen: |
497 mal |
Beschreibung: |
freqz_nv. mit Beispielcode erhalten |
|
Download |
Dateiname: |
freqz2_nv.png |
Dateigröße: |
25.98 KB |
Heruntergeladen: |
497 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.01.2015, 12:04
Titel:
|
|
Hallo,
schreib doch mal bitte hin, wie die einzelnen Einträge der Matrix in deinem Beispiel genau errechnet werden sollen.
Grüße,
Harald
|
|
|
blueshark |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 09.01.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2015, 15:32
Titel:
|
|
Hier genau ist, das Problem... ich weiß nicht genau wie sich eine solche Transformation berechnet.
Implementiert hab ich die Funktion jetzt so...
So in der Art habe ich mir das auch vorgestellt, leider liefert dies nicht ganz das gewünschte Ergebnis.... das liegt aber vermutlich am curve fit.
Allerdings muss sich eine solche Berechnung doch irgendwie auch direkt in polarkoordinaten durchführen lassen, oder?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.01.2015, 23:33
Titel:
|
|
Hallo,
wenn du nicht weißt, wie sich eine solche Transformation berechnet, wie hast du dann die Werte ermittelt?
Ist es sinnvoll, eine Regressionsgerade zu bestimmen? Sollte es wenn nicht eine Art Interpolation sein, z.B. interp1 mit 'pchip' als Methode?
Wenn du z.B. surf zur Visualisierung verwenden willst, wird dir nichts anderes als kartesische Koordinaten als Endergebnis bleiben. Es gibt zwar Konvertierungsfunktionen wie cart2pol, aber ich denke mal, dass das hier nicht das Problem ist.
Grüße,
Harald
|
|
|
|
|
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.
|
|