Filter löschen
Filter löschen

How to use logical "OR" operation for comparing string??

15 Ansichten (letzte 30 Tage)
Shamim
Shamim am 15 Dez. 2017
Bearbeitet: Shamim am 15 Dez. 2017
I tried with the code as given:
strcmp('normal'||'neptune',{'normal'; 'DoS'; 'neptune'; 'R2L'})
and the error is saying that the OR "||" operator must be convertible to logical scalar values. So, what could be the possible solution to this?? thanks in advance.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 15 Dez. 2017
any( ismember({'normal', 'neptune'}, {'normal'; 'DoS'; 'neptune'; 'R2L'}) )
  4 Kommentare
Walter Roberson
Walter Roberson am 15 Dez. 2017
For the index positions,
[tf, idx] = ismember({'normal', 'neptune'}, {'normal'; 'DoS'; 'neptune'; 'R2L'})
The returned idx would be [1 3] in this example.
idx(K) will be valid only in the locations where tf(K) is true (and will be 0 otherwise.)
Shamim
Shamim am 15 Dez. 2017
Bearbeitet: Shamim am 15 Dez. 2017
Hello Mr. Roberson first of all thank you very much for your help and secondly I guess that, I didn't explain my problem properly. The code above is returning the first true index position only. If the same string is repeated again in the cell array then it's not returning those positions.
In attached picture I showed two commands and my intention was to merge those two commands into one because my real operation is much more bigger than this and it will also help me to reduce 32 if else condition into one single command.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Formula Manipulation and Simplification finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by