|
|
Interpolieren einer Matrix auf niedrigere Auflösung |
|
smaica |

Forum-Century
|
 |
Beiträge: 105
|
 |
|
 |
Anmeldedatum: 02.10.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 07:32
Titel: Interpolieren einer Matrix auf niedrigere Auflösung
|
 |
Hallo,
ich habe eine Matrix mit 101x101 Werten und möchte diese auf eine Matrix mit 6x6 Werten reduzieren.
Ich habe es mit interp2 versucht:
Damit bekomme ich eine Matrix mit 6x6 Werten, allerdings werden immer nur die Werte an den Positionen 1,21,41,... herausgepickt, da diese ja bestehen und nicht z.B. in deren Umfeld bilinear interpoliert.
Ich hätte gerne, dass nicht der diskrete Wert an den Positionen in die neue Matrix geschrieben wird, sondern eine Art interpolierter Mittelwert aus dem jeweiligen Einflussbereich.
Wie stelle ich das an?
Viele Dank!
smaica
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 10:15
Titel:
|
 |
Zitat: |
Damit bekomme ich eine Matrix mit 6x6 Werten, allerdings werden immer nur die Werte an den Positionen 1,21,41,... herausgepickt, da diese ja bestehen und nicht z.B. in deren Umfeld bilinear interpoliert. |
das ist auch das erwartete verhalten steht auch in der doc so
Zitat: |
The results always pass through the original sampling of the function. |
ich würde mal meine suchmaschiene der wahl nach 2d moving average befragen. ich glaube das kann helfen
grüße
_________________
richtig Fragen
|
|
|
smaica |
Themenstarter

Forum-Century
|
 |
Beiträge: 105
|
 |
|
 |
Anmeldedatum: 02.10.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 13:29
Titel:
|
 |
Hallo Winkow,
vielen Dank für deinen Beitrag.
Moving Average ist nicht was ich suche. Eher eine Art bilineare Interpolation um einen Wert. Ich hatte die Hoffnung, dass Matlab da bereits eine Funktion zur Verfügung stellt?!
Viele Grüße,
smaica
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 13:54
Titel:
|
 |
Zitat: |
Eher eine Art bilineare Interpolation um einen Wert. |
es ist immer schwer zu erraten was jemand will wenn derjenige es selber nicht weis du müsstest also nochmal besser erklären was gerne dein ziel wäre und wie dieser wert entstehen soll. sonst raten wir hier nur weiter im kreis. interpolation geht da nicht da du ja nicht den vorhandenen wert an der stelle willst sondern einen "irgendwie" anderen. aber wie anders wäre hilfreich zu wissen
_________________
richtig Fragen
|
|
|
smaica |
Themenstarter

Forum-Century
|
 |
Beiträge: 105
|
 |
|
 |
Anmeldedatum: 02.10.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 14:32
Titel:
|
 |
Okay.
Ich habe eine Matrix A aus 101x101 Werten, diese möchte ich reduzieren auf B 6x6 Werte wie folgt:
Interp nimmt sich bei dieser Reduktion einfach für den neuen Punkt B(2,2) in der Matrix den Wert A(21,21) aus der alten. (Für B(1,1) nimmt er aus der alten A(1,1), für B(1,3) <- A(1,41), usw. ich glaub das ist verständlich).
Ich möchte jetzt, dass nicht einfach der einzelne Wert genommen wird, sondern dass in einem definierten Einflussbereich um einen Wert (z.B. von A(11:31,11:31) wenn es um den Wert an der alten Position A(21,21) geht (neue Position B(2,2))) alle Werte genutzt werden um einen Mittelwert (für den neuen Wert an position B(2,2)) zu bilden und zwar gewichtet mit ihrem Abstand zum Wert an der Stelle A(21,21).
Ich hoffe nun versteht man worum es geht (;
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 14:40
Titel:
|
 |
dann würde ich meinen vorschlag mit moving average benutzen und dann an das problem mit der wichtung anpassen. im fileexchange gibt es etwas zum 2d moving average. da kannst du ja dann die wichtung noch mit einbauen je nachdem wie die aussehen soll
_________________
richtig Fragen
|
|
|
smaica |
Themenstarter

Forum-Century
|
 |
Beiträge: 105
|
 |
|
 |
Anmeldedatum: 02.10.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 15:00
Titel:
|
 |
okay, vielen Dank. Das werde ich versuchen!
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.06.2015, 15:01
Titel:
|
 |
wenn es da dann zu problemen kommt ist das dann auch einfacher nachzufragen da du code und beispieldaten ja posten kannst etc
_________________
richtig Fragen
|
|
|
|
|
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.
|
|