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

Lineare Interpolation von Vektoren

 

Annagoesmatlab
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 04.11.12
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 04.11.2012, 13:36     Titel: Lineare Interpolation von Vektoren
  Antworten mit Zitat      
Hallo,
ich bin ein vollkommener anfänger was matlab angeht, und muss zurzeit leider im zuge meiner bachelorarbeit damit aber arbeiten....

also mein problem ist, dass ich 2 verschieden lange vektoren habe.. und zwar ist der eine 34835 werte lang und der andere 8760 werte. und jetzt soll ich denn kürzeren mit hilfe von linearer interpolation zwischen den werten auf die länge des anderen bringen und das ganze mit for und if schleifen...und das überfordert mich leider gerade gänzlich...

es tut mir leid wenn die frage schon von jemanden vor mir gestellt wurde, aber ich hab leider noch nicht das passende gefunden.
es wäre wirklich super nett, wenn mir jemand helfen könnte.

Danke
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.11.2012, 14:00     Titel: Re: Lineare Interpolation von Vektoren
  Antworten mit Zitat      
Hallo Annagoesmatlab,

Die Aufgabe ist nicht lösbar. Einerseits gibt es keine IF-Schleifen, andererseits benötigt eine Interpolation keine FOR-Schleifen. Und der Befehl INTERP1 kann mit 2 verschiedenlangen Vektoren zunächst nichts anfangen, solange die notwenige Definition fehlt, wie die Zeitpunkts oder Orte der beiden Vektoren miteinander korreliert sind. So könnte es sein, dass der längere Vektor mit höherer Frequenz aufgezeichnet wurde, oder aber über einen längeren Zeitraum, oder zu nicht equidistant verteilten Zeiten.

Schaue Dir mal die Dokumentation von INTERP1 an und finde heraus, wie die Elemente der Vektoren mit einander korreliert sein könnten. Danach sollte das Problem in einer Zeile zu lösen sein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Annagoesmatlab
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 04.11.12
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 05.11.2012, 13:34     Titel:
  Antworten mit Zitat      
Ahh ja siehste ich habe wirklich noch keine Ahnung von Matlab. Aber danke ich habe mir schon gedacht, dass es auch leichter funtionieren sollte. Very Happy
Und das tut es jetzt auch! Danke.
Nur jetzt hab ich ein neues Problem, ich rechne ne Leistung aus in der auch negative Zahlen vorkommen aber mit 10^-14 und natürlich sind die zu vernachlässigen, deshalb würde ich gerne die negativen Zahlen immer mit einer Null ersetzen. Wisst ihr wie ich das hinbekommen könnte?

Danke nochmal
Anna
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 05.11.2012, 13:56     Titel:
  Antworten mit Zitat      
Hallo,

das geht mit

Code:

S=1e-14;
v(v<=S)=0
 


Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
Annagoesmatlab
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 04.11.12
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 05.11.2012, 14:04     Titel:
  Antworten mit Zitat      
Super das klappt!
Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 05.11.2012, 14:11     Titel:
  Antworten mit Zitat      
Wenn du die Werte übrigens vollständig rausfiltern willst, dann kannst du auch v(v<=S)=[] verwenden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neuling12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2014, 10:56     Titel: ähnliches Problem
  Antworten mit Zitat      
Annagoesmatlab hat Folgendes geschrieben:
Ahh ja siehste ich habe wirklich noch keine Ahnung von Matlab. Aber danke ich habe mir schon gedacht, dass es auch leichter funtionieren sollte. Very Happy
Und das tut es jetzt auch! Danke.

Anna


Stehe vor dem gleichen Problem bei mir klappt das mit interp1 aber trotzdem nicht! Kann jemand den Code posten?

Code:

x=1:1:56;
xx=1:1:61;
vektorlang = interp1(x,vektor,xx);
 


mein Vektor ist ein Spaltenvektor mit 56 Zeilen er soll 61 Zeilen lang sein, aber seine Form behalten. Mit diesem Befehl hängt Matlab nur NaN an meinen Vektor an. Was mache ich falsch.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.04.2014, 02:02     Titel: Re: ähnliches Problem
  Antworten mit Zitat      
Hallo Anna,
Code:
x = 1:1:56;
xx = linspace(1, 56, 61);
vektorlang = interp1(x,vektor,xx);

Gruß, Jan
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.