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

Vergleichen mit Toleranzen

 

ulTIMO
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 16.05.11
Wohnort: Seelscheid
Version: R2008B
     Beitrag Verfasst am: 26.05.2011, 14:09     Titel: Vergleichen mit Toleranzen
  Antworten mit Zitat      
Hi

hab da ein kleines Problem, dass mich an den Rand des Wahnsinns treibt.

ich würde gerne 2 Werte bei einer if Bedingung miteinander vergleichen. Jedoch haben die Werte eine gewisse Toleranz. Außerdem will ich kontrollieren, ob die beiden Werte eine Differenz von 50 hat.

z.B.
Code:

a=[0,0,0];   %Werte können abweichen
b=[50,50,50]; %Werte können abweichen
if (jeder Wert von b um 50 größer als a) %Toleranzen berücksichtigen
    Anweisungen
else
    Anweisungen
end
 


Hab absolut keinen Plan wie ich da rangehen soll.

Danke im Voraus
ulTIMO

Zuletzt bearbeitet von ulTIMO am 26.05.2011, 14:33, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.05.2011, 14:33     Titel:
  Antworten mit Zitat      
Hallo,

da ist auch ein wenig die Frage, was du im Zweifelsfall machen möchtest.
Am besten wäre meines Erachtens bei Toleranzen tola und tolb:
a=0; %Wert kann abweichen
b=50; %Wert kann abweichen
Code:
if (b - tolb > 50 + a + tola) %Toleranzen berücksichtigen
    Anweisungen für b > 50 + a sicher
elseif (b + tolb < 50 + a - tola)  
    Anweisungen für b < 50 + a sicher
else
    Anweisungen im Zweifelsfall
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
ulTIMO
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 16.05.11
Wohnort: Seelscheid
Version: R2008B
     Beitrag Verfasst am: 26.05.2011, 14:46     Titel:
  Antworten mit Zitat      
Wenn ich den Code richtig verstehe dann kontrolliert der, ob b im Bereich 50+- Toleranz liegt? Wenn das der Fall ist, dann sag ich schonmal danke, da mir das ordentlich weiterhilft. Jetzt kann ich mich ja mal dran versuchen das ganze für a noch hinzukriegen. Wenn ich es nicht hin krieg dann meld ich mich nochmal.

Danke
ulTIMO
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.05.2011, 15:02     Titel:
  Antworten mit Zitat      
Hallo,

nein, er kontrolliert, ob b > 50 + a unter Berücksichtigung der Toleranzen.

Wenn du jeweils Vektoren hast, ist wiederum die Frage: willst du vergleichen, ob ALLE Elemente paarweise diese Bedingung erfüllen (das wäre der MATLAB-Befehl all) oder was genau?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
ulTIMO
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 16.05.11
Wohnort: Seelscheid
Version: R2008B
     Beitrag Verfasst am: 27.05.2011, 09:53     Titel:
  Antworten mit Zitat      
also a soll meine Referenz sein. b wird eingelesen und sollte eigentlich entweder 0 oder 50 sein. beide werte mit toleranz. in der if anweisung will ich überprüfen ob b 0 oder 50 ist. das ganze natürlich mit toleranzen. nach der überprüfung will ich dann entsprechend eine 0 oder 1 in eine vektor schreiben. diesen anschließend in einen char verwandeln und mit bin2dec in eine dezimalzahl. hab soweit alles nur die überprüfung in der if anweisung fehlt noch.
Private Nachricht senden Benutzer-Profile anzeigen
 
ulTIMO
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 16.05.11
Wohnort: Seelscheid
Version: R2008B
     Beitrag Verfasst am: 27.05.2011, 10:16     Titel:
  Antworten mit Zitat      
ok hab es jetzt geschafft. aber ohne den ansatz wär ich glaube nicht weiter gekommen. mein code sieht jetzt wie folgt aus

Code:

if(all(b<=50+a+tola)&&all(b>=50-a-tola))
 


Danke für die gute Hilfe
ulTIMO
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 - 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.