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

Operands to the || and && operators must be converti

 

gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2013, 17:09     Titel: Operands to the || and && operators must be converti
  Antworten mit Zitat      
Hallo Leute,
ich möchte hier etwas vergleichen,
da kommt aber im Command-Window folgende Fehlermeldung:

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

Kann damit leider nicht viel anfangen, hat da jemand eine Ahnung.
Darüber hinaus:
kann man die if-Schleife auch einfacher darstellen?
Gruß


a1 = x(1,: ); % wobei a1 folgendes ist

a1 =

1 1 0 0 0 1 1 0

s1 = [0 0 0 1 0 1 1 1];
s2 = [0 0 1 1 1 0 0 1];
s3 = [0 1 0 0 1 0 1 1];
s4 = [1 0 1 0 1 1 1 1];
s5 = [0 1 1 1 0 0 0 0];
s6 = [1 1 0 1 1 0 0 0];

if(a1 == s1 || a1 == s2 || a1 == s3 || a1 == s4 || a1 == s5 || a1 == s6)
...
end


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.09.2013, 17:14     Titel:
  Antworten mit Zitat      
was hättest du denn gerne als ergebniss. a1==s1 liefert dir ja einen logischen vektor. wann soll die if abfrage dann anspringen ?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2013, 17:44     Titel: Operands to the || and && operators must be converti
  Antworten mit Zitat      
okay,

also, die if-Schleife soll dann etwas ausführen,
wenn a1 mit s1 oder s2 oder s3 oder... übereinstimmt;
das Beispiel hier ist vlt. doof gewählt
nehmen wir folgendes an

z.B.

a1 = 1 1 0 0 0 1 1 0
s1 = 1 1 0 0 0 1 1 0

if(a1 == s1 || a1 == s2 || a1 == s3)
set(handles.edit1,'string','ok');
else
set(handles.edit1,'string','xxx');
end

leider funktioniert das nicht, weil ich die Fehlermeldung auch nicht verstehe.
Operands to the || and && operators must be convertible to logical scalar values.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.09.2013, 17:52     Titel:
  Antworten mit Zitat      
ok wie dir die fehlermeldung bereits sagt ist der || operator für skalare daten und nicht für vektoren. der | operator geht auch bei vektoren
allerdings ist das alles trotzdem nicht das was du machen willst.
wie ich oben bereits sagte kommt bei dir ein logischer vektor raus ^^
Code:

was soll da rauskommen? Smile
darum solltest du
Code:
benutzen einfacher wäre es gleich die vektoren s1-s6 ( da ist schon wieder ein index im namen versteckt und das ist mist aber egal) in eine matrix zu packen und mit
Code:
zu arbeiten.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2013, 20:44     Titel:
  Antworten mit Zitat      
ehhm,

mir ist leider nicht ganz klar wie du das meinst;

habe folgendes versucht

a1 = x(1,: ); % wobei a1 folgendes ist

a1 =

1 1 0 0 0 1 1 0

s1 = [0 0 0 1 0 1 1 1;
0 0 1 1 1 0 0 1;
0 1 0 0 1 0 1 1;
1 0 1 0 1 1 1 1;
0 1 1 1 0 0 0 0;
1 1 0 1 1 0 0 0];

ismember(a1,s1)


da kommt dann aber immer 1 1 1 1 1 1 1 1 raus


wie gesagt, wenn a1 mit einer matrixzeile von s1 übereinstimmt,
dann soll in einer edit-text-box z.B. okay stehen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 24.09.2013, 21:15     Titel:
  Antworten mit Zitat      
Hallo

so hat das Winkow gemeint:

Code:


isinMatrix = ismember(s1,a1,'row')
if any(isinMatrix)
 fprintf('Okay')
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
gapbeherif

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2013, 08:36     Titel:
  Antworten mit Zitat      
super vielen Dank Leute,
ich habe hinbekommen, was ich wollte
 
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.