WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Interpolieren einer Matrix auf niedrigere Auflösung

 

smaica
Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2015, 07:32     Titel: Interpolieren einer Matrix auf niedrigere Auflösung
  Antworten mit Zitat      
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:

Code:
[X_neu,Y_neu]=meshgrid(1:21:101,1:21:101);
Matrix_neu=interp2(Matrix_alt,X_neu,Y_neu);


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
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.06.2015, 10:15     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
smaica
Themenstarter

Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2015, 13:29     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.06.2015, 13:54     Titel:
  Antworten mit Zitat      
Zitat:
Eher eine Art bilineare Interpolation um einen Wert.

es ist immer schwer zu erraten was jemand will wenn derjenige es selber nicht weis Smile 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 Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
smaica
Themenstarter

Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2015, 14:32     Titel:
  Antworten mit Zitat      
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 (;
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.06.2015, 14:40     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
smaica
Themenstarter

Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2015, 15:00     Titel:
  Antworten mit Zitat      
okay, vielen Dank. Das werde ich versuchen!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.06.2015, 15:01     Titel:
  Antworten mit Zitat      
wenn es da dann zu problemen kommt ist das dann auch einfacher nachzufragen da du code und beispieldaten ja posten kannst etc Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.