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

Interpolation

 

gast4444

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2013, 19:45     Titel: Interpolation
  Antworten mit Zitat      
hey,

ich hoffe einer von euch profis kann mir helfen. ich habe eine 1000x3 matrix, die erste spalte enthält die datumsangabe, die zweite und dritte messwerte. und ich soll diese messwerte jetzt plotte. was bis hier her nicht das problem wäre, nur leider sind die daten nicht vollständig und ich muss über größere lücken interpolieren, sodass eine messreihe im minutentakt vorliegt.

das datum hab ich schon mit datenum in zahlen umgewandelt, damit man damit besser rechnen kann. ich hab mir auch schon gedanken darüber gemacht, wie ich die sache am besten angehen.

ich nehme den ersten wert der messreihe und den letzten wert der messreihe her und möchte jetzt in regelmäßigen abständen, in meinem fall eine minute, werte.
mit dem befehl interpl1 kann ich interpolieren, nur bin ich mir jetzt nicht sicher, wie genau ich das angehen soll. wie kann ich matlab sagen, dass es im minutentakt interpolieren soll bzw. nur zwischen wenigen werten ist eine lücke, nimmt matlab dann automatisch den wert, der in der matrix steht, wenn die bedingung erfüllt ist, oder wird ein komplett neuer vektor erstellt?

bin für jede hilfe dankbar.
bye


markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 16.10.2013, 20:01     Titel:
  Antworten mit Zitat      
Ich nehme mal bezug hierauf:
http://www.gomatlab.de/differenz-bestimmen-t30731.html#122960

Code:

dx = 0.00069444440305233;
for i = 1:length(differ);
    if differ(i) > dx;
    x = [differ(i) differ(i+1)]
    T_neu = [T(i) T(i+1)]  % WAS IST T?
    T_dx = [differ(i):dx:differ(i+1)]
   
    differ(i,2) = interp1(x,T_neu,x,T_dx,'linear'); % Speichert das Ergebnis in Spalte 2 von differ ab
    else
      differ(i,2)=differ(i,1); % wenn keine lücke besteht, übertrage das ursprüngliche ergebnis
    end
end
 


Ohne zu wissen wie dein differ überhaupt aussieht und was T ist (war von dir gegeben).
Aber vielleicht ist es so für andere auch verständlicher und es kommt noch eine bessere Lösung rein.
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
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.