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

Abfrage mit einer Toleranz +- %

 

MRBBB
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 15.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2015, 17:03     Titel: Abfrage mit einer Toleranz +- %
  Antworten mit Zitat      
Hallo zusammen,

brauche wieder einmal eure Hilfe.
Und zwar sieht es folgendermaßen aus:

Ich habe 3 Zahlenwerte und möchte sie untereinander vergleichen, allerdings mit einer gewissen Toleranz.
Konkretes Beispiel:

a= 3; b= 4; c= 5;

Wenn nun a +- 5 Prozent größer, kleiner oder gleich b und c ist, soll die Ausgabe 'Trifft zu' ausgegeben werden.
Wenn b +- 10 Prozent größer, kleiner oder gleich c, soll die Ausgabe 'Trifft nicht zu' erfolgen.

Wie würde in so einem Fall die Codezeile lauten? Bin für alle Hilfen sehr dankbar!

GRUß MRBBB
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: 12.02.2015, 17:11     Titel:
  Antworten mit Zitat      
Code:
abs(a-b)/b<=0.05
so in der art. dann mit if then oder auch nem switch.
allerdings weis ich nicht wie a 5% größer als b sein soll und gleichzeitig noch im bereich von c liegen soll. das klappt so nicht denke ich.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
MRBBB
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 15.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2015, 17:25     Titel:
  Antworten mit Zitat      
Hallo Winkow,

erstmals vielen Dank für die super schnelle Antwort!
Also die Variable c ist vorerst gar nicht relevant, wir können sie uns auch wegdenken.
Nur, weiß ich nicht ob ich auf dem Schlauch bin, oder ob ich deine Codezeile nicht genau verstehe...

Erst bildest du die Differenz von den 2 Werten und teils sie durch das eine? Wieso nicht durch das andere? Sorry mag sein dass die Frage blöd ist, aber ich habe es tatsächlich nicht verstanden.

Gruß MRBBB
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: 12.02.2015, 17:27     Titel:
  Antworten mit Zitat      
weil du nur 5% gesagt hast und nicht 5% von was. und ich bin davon aus gegangen das es sich um 5% von b handelt
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
MRBBB
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 15.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2015, 07:58     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht habe ich mich einfach falsch ausgedrückt, sry...
a soll untersucht werden, wenn dieser (also a) größer oder kleiner 5% als b, dann soll etwas passieren. Hoffe so ist es verständlicher

Gruß MRBBB
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: 13.02.2015, 08:56     Titel:
  Antworten mit Zitat      
Hallo,

für mich zumindest ist es nicht verständlich.
Prozentangaben beziehen sich immer auf eine Gesamtmenge, z.B. 30% der Wähler (und nicht aller Wahlberechtigten) haben für eine Partei gestimmt.
Worauf beziehen sich die 5% also bei dir? Falls sie sich auf b beziehen, siehe Winkows Vorschlag. Man könnte das auch schreiben als
Code:
abs(a-b) <=0.05*b

falls das klarer ist.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 15.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2015, 10:04     Titel:
  Antworten mit Zitat      
Hallo,

ja sollte sich auf b beziehen. jetzt funktioniert Smile
vielen Dank!


Gruß MRBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Mandzu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.02.2015, 13:46     Titel: Ähnliches Problem!
  Antworten mit Zitat      
Hi ,
Ich habe ein ähnliches Problem...

Kann man irgendwie in eine Struktur wie

b = ismember(A,x);

einbauen, dass die Einträge sich bis zu einer gewissen Toleranz unterscheiden dürfen, um noch als gleich zu gelten?
Oder muss ich das als for-Schleife machen?

Danke schonmal. Smile
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.02.2015, 20:12     Titel: Re: Ähnliches Problem!
  Antworten mit Zitat      
Hallo Mandzu,

Bitte hänge einneues Problem nicht an einen bestehenden Thread an. Andernfalls ist nicht mehr klar, auf welche Frage sich eine Antwort bezieht.

Ja, mit einer FOR-Schleife sollte das einfach möglich sein.

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