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

Logische Abfrage programmieren

 

Basdi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 09:26     Titel: Logische Abfrage programmieren
  Antworten mit Zitat      
Hallo!

Ich hab ein Problem und erhoffe mir Hilfe bei euch Profis Wink
Ich habe zwei Vektoren welche Messwerte enthalten. Der eine enthält 200 Einträge und der andere 50. Nun sollen beide Vektoren folgendermaßen ausgewertet werden:

- Wenn ein Messwert im ersten Vektor enthalten ist (der mit 200 Einträgen), dann soll dieser anhand der vorliegenden Gleichungen ausgewertet werden. Ist kein Messwert in dieser Vektor vorhanden, soll nichts passieren.

- Liegt ein Wert im zweiten Vektor vor, so soll die Auswertung um diesen Wert ergänzt werden. Wenn nicht soll ebenfalls nichts passieren.

Ich würde diese Logik gerne mit zwei If-Schleifen programmieren. Aber wie gebe ich dem Programm vor zum einen wann ein Wert vorliegt und zum anderen, dass das Programm dann auch genau diesen Wert zur Auswertung nutzt?!? Confused

Wäre super wenn einer von euch mit weiterhelfen könnte!


Liebe Grüße


Basdi


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.11.2011, 09:49     Titel:
  Antworten mit Zitat      
huhu. also mit
Code:
besorgst du dir erstmal die größe deines messwert vektors. ( kannst ja beide messwerte in einem 2x200 vektor speichern) und mit
Code:
guckst du wo die messwerte sind. ich geh mal davon aus das da wo keine sind NaN drin steht.
danach durschläufst du einfach den vektor mit ner forschleife und guckst dir alle elemente an und überprüfst mit ifschleifen was gemacht werden soll
grüße winkow
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 10:11     Titel:
  Antworten mit Zitat      
Hi!

Danke für deine Antwort.
Ich hab verstanden wie ich meine Problematik umsetzen könnte.
Welchen Befehl muss ich denn anwenden damit der kleinere Vektor in eine Matrix der Länge des größeren geschrieben wird, sodass die zwischenwerte als NaN eingetragen werden? Ich kenne nur die interp Funktion aber interpolieren möchte ich ja gerade nicht Rolling Eyes

Vielen Dank schonmal!
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.11.2011, 10:19     Titel:
  Antworten mit Zitat      
Hallo,

du kannst einen Vektor mit 200 NaN vorbelegen und die Einträge des Vektors mit 50 Elementen in diesen Vektor schreiben.

Code:
v = nan(200,1);
v(...) = ...;


An welche Stellen die 50 Elemente zu schreiben sind, musst du aus deiner Anwendung heraus entscheiden.

Grüße,
Harald
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: 08.11.2011, 10:20     Titel:
  Antworten mit Zitat      
naja es muss ja nen logischen zusammenhang geben welcher der 50 werte zu welchem der 200 gehört. kanst entweder auch mit ner schleife und if adden oder du lässt es einfach mit den 2 vektoren. is ja auch nicht schlimm
Private Nachricht senden Benutzer-Profile anzeigen
 
Basdi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 10:48     Titel:
  Antworten mit Zitat      
Hm... Also einen direkten logsichen Zusammenhang haben die beiden Vektoren leider nicht. Die Abtastzeiten sind leider auch unterschiedlich. Ich kann also nicht sagen, dass t2 = 5*t1 ist. Daher gelingt mir die Zuordnung leider gerade nicht Confused

Bisher komme ich leider noch nicht auf einen Nenner bei der Umsetzung.

Aber vielen Dank für eure Hilfe!

Gruß

Basdi
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.11.2011, 11:38     Titel:
  Antworten mit Zitat      
Hallo,

ist dann für beide Vektoren jeweils ein Zeitvektor gegeben? Man kann ja die Zuordnung ja schlecht auswürfeln.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mampfbackenhamster
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 08.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 12:01     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich hab mich grade erstmal registriert. Danke schonmal für deine Mühe!
Ich habe in den angehängten PDFs zwei Matrizen angehangen wie ich sie zu verarbeiten habe.
Die Matrix der x_pp Messung enthält in der ersten Spalte die Zeit und in der zweiten Spalte die Messwerte. Bei der Matrix des GPS ist es genau umgedreht.
Beide Aufnahmen starten zeitgleich, jedoch (wie ersichtlich) mit unterschiedlicher Abtastrate.

Die Auswertung der Daten soll so erfolgen, dass immer der jeweilige x_pp-Wert ausgewertet wird. Wenn nun ein GPS-Wert vorliegt soll dieser die Auswertung ergänzen...

Vll. hab ich mich jetzt etwas klarer ausgedrückt.

Vielen Dank!

Basdi

GPS_v.pdf
 Beschreibung:

Download
 Dateiname:  GPS_v.pdf
 Dateigröße:  18.6 KB
 Heruntergeladen:  303 mal
x_pp_MC.pdf
 Beschreibung:

Download
 Dateiname:  x_pp_MC.pdf
 Dateigröße:  57.46 KB
 Heruntergeladen:  317 mal
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: 08.11.2011, 12:43     Titel:
  Antworten mit Zitat      
die negativen zeiten verwirren mich ein wenig aber naja.
such einfach in einer matrix erstmal nach den einträgen die du auswerten willst. dann liest die zeit aus und suchst aus der 2. matrix die zeit raus und ermittelst den zugehörigen messwert. kannst mit ner verschachtelten for-schleife machen und n bissel if schleife.
Private Nachricht senden Benutzer-Profile anzeigen
 
mampfbackenhamster
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 08.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 13:03     Titel:
  Antworten mit Zitat      
ich geb dir recht. Man sollte seine eigenen Matrizen schon beschreiben können Embarassed
Die Zeiten stehen in beiden Matrizen in der zweiten Spalte und die Messwerte in der ersten Spalte...
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: 08.11.2011, 13:32     Titel:
  Antworten mit Zitat      
nunja die zeiten stimmen ja auch nicht wirklich überein. also suchst du dann nach zeiten von +- n paar hundertstel. es siht aber so aus als wäre das eine 5 mal häufiger gesampelt als das andere also kannst du entweder
Code:
upsample(vektor,5)

machen (Signal Processing Toolbox ) oder
Code:
a=[1;2;3;4;5;6;7];
b=zeros(5*length(a),1);
b(1:5:length(b))=a(:);

sowas in der art. vieleicht führt das ja zu nem brauchbaren ergebniss
Private Nachricht senden Benutzer-Profile anzeigen
 
mampfbackenhamster
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 08.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 13:44     Titel:
  Antworten mit Zitat      
Hallo Winkow,

ja genau die nicht ganzzahlige Variation der Samplezeit ist das Problem.
Aber vielen Dank für die Vorschläge! Ich denke ich komme damit wesentlich weiter!

Grüße


Basdi
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.