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

Matrixinterpolation

 

twilight

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2008, 07:41     Titel: Matrixinterpolation
  Antworten mit Zitat      
Hi,
da mir die Beiträge im Forum zu diesem Thema nicht sonderlich weiter geholfen haben, muss ich jetzt doch ein Thema aufmachen.

Ich habe einen 3D Raum. Der wird mit Messungen gefüllt x=mA y=Frequ. und z=Amplitude. Ich habe eine Matrix deren Spalten und Zeilennummern dem x und dem y entsprechen und z der Wert der Matrix an der bestimmten Position ist. Also Matrix(x,y)=z.

Allerdings ist die Matrix nicht vollständig gefüllt. Die "nicht gefüllten" Stellen sind mit 0 gefüllt.

Jetzt möchte ich diese Nullen durch interpolierte Werte ersetzen. Momentan probiere ich es mit interpol2, aber das will nicht so richtig funktionieren.

Hat jemand ne Idee, wo ich ansetzen könnte?


Gruß


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 19.08.2008, 10:00     Titel:
  Antworten mit Zitat      
Hallo twilight,

für Deinen Fall könnte

Code:

M = griddata(x,y,z,XI,YI);
 


geeignet sein. XI und YI sind von meshgrid erzeugte Matrizen, die das Gitter angeben, während x, y und z Deine Datenvektoren sind.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2008, 10:33     Titel:
  Antworten mit Zitat      
Seh ich das jetzt falsch oder nimmt das Teil die Nullen meiner Matrix mit in die Berechnung?

Meine Matrix

--1--2--3--4
-------------
1-3--0--2--1
-------------
2-1--0--3--3
-------------
3-0--1--2--0
-------------
4-0--3--0--1

ich will die Nullen durch interpolierte Werte ersetzen

Trotzdem probiere ichs nochmal mit griddata, wobei ich mich ja schon selber durch die MATLAB help gefressen habe....
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 19.08.2008, 11:11     Titel:
  Antworten mit Zitat      
Hallo twilight,

hast Du nicht x, y und z noch als Datenvektoren vorliegen? Übergib doch die an griddata, dann gehen auch keine Nullen in die Berechnung ein.

sonst
Code:
M = [1 1 2 3 4;1 3 0 2 1;2 1 0 3 3;3 0 1 2 0;4 0 3 0 1];

% hier kannst Du statt 1:5 das tatsächliche Gitter eingeben (Werte für x und y)
[X,Y] = meshgrid(1:5,1:5);

% find findet alle Einträge ~= 0, das sind die Daten
ind = find(M(:));
x = X(ind);
y = Y(ind);
z = M(ind);

% dann interpolieren mit griddata
M_interp = griddata(x,y,z,X,Y)

% zeichnen zum Überprüfen
mesh(X,Y,M_interp), hold on
plot3(x,y,z,'o'), hold off
 


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2008, 07:34     Titel:
  Antworten mit Zitat      
Ja, so geht das.
Weiß momentan auch nich, warum ich manchmal solche Hänger habe( Naja es sind die letzten zwei Wochen der Diplomarbeit bevor es ans schreiben geht)

Danke dir jedenfalls
 
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 - 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.