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

If Anweisung mit 2 Bedingungen

 

Dune
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2012, 17:56     Titel: If Anweisung mit 2 Bedingungen
  Antworten mit Zitat      
Hallo liebe User,

bei meiner Programmierung tritt öfter ein Fehler auf, den ich leider mithilfe der Suchfunktion oder der Matlabhilfe nicht so beheben konnte, wie ich das gerne würde.

Ich würde gerne folgenden Ausdruck überprüfen lassen:

Code:
if strfind(handles.maingui.Filename,'Lexus') > 0 || strfind(handles.maingui.Filename,'LEXUS') > 0


Nun erhalte ich als Fehlermeldung:

Operands to the || and && operators must be convertible to logical scalar values.

Er soll also überprüfen ob die Variable Filename "Lexus" oder LEXUS" heißt. Mit einer If-Elseif-Else Schleife kann ich das Problem umgehen, aber der Code wird dadurch um einiges länger.

Vielleich ist stehe ich ja nur auf dem Schlauch, aber bei der Überprüfung
Code:
strfind(handles.maingui.Filename,'Lexus') > 0
kommt entweder "1" heraus oder "[]" , wenn dies nicht der Fall ist.
Irgendwie ist mir schon klar, dass "[]" kein logischer Skalarwert ist, aber wie kann ich dann mit einer ODER-Bedingung das Problem umgehen?

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

für deine Zwecke solltest du STRCMP oder noch besser STRCMPI verwenden, die genau für den Vergleich von Strings geschaffen sind.

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

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 08:32     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort.

Ich glaube, dass ich strcmp bzw strcmpi nicht verwenden kann, da der Inhalt meiner Variablen "xxxxxLexusxxxxx" heißt und er die Datei nur anhand von "Lexus" identifizieren soll.

Gruß
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: 23.01.2012, 08:58     Titel: Re: If Anweisung mit 2 Bedingungen
  Antworten mit Zitat      
Hallo Dune,

Es gibt keine IF-Schleifen. Nur FOR- und WHILE-Schleifen sind "Schleifen".

Die Argumente für || und && müssen skalare LOGICALs sein. Also:
Code:
if any(strfind(handles.maingui.Filename,'Lexus')) || any(strfind(handles.maingui.Filename,'LEXUS'))

ANY und ALL helfen in solchen Fällen weiter.

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

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 10:03     Titel:
  Antworten mit Zitat      
Super, danke für die Hilfe und den netten Hinweis zu If-elseif-else -Ausdrücken!

Hat mit
Code:
sehr gut geklappt.

Grüße
Dune
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.