using string in if statement

999 visualizzazioni (ultimi 30 giorni)
Oyewale Oyelami
Oyewale Oyelami il 18 Lug 2011
Risposto: NgoiKH il 29 Ott 2021
i want to use string in my if boolean expression....something like if(name =='daniel') disp...... All i have been getting are errors...is it possible and if yes how? Thanks

Risposte (3)

Walter Roberson
Walter Roberson il 18 Lug 2011
If you attempt to compare two strings using == and the strings are not the same length, then you will get errors. == can be used for strings only if they are the same length.
Use strcmp() or isequal() or strcmpi().
  2 Commenti
N/A
N/A il 26 Mar 2019
What if I'm using an if statement where I want the if condition to be met if the string being compared has only a part of the actual string
How do I make that work?
example
button = buttons
if button ==contains(str, "butt")
run()
else
stop()
end
Steven Lord
Steven Lord il 26 Mar 2019
Working with a string array is different than working with a char array. What Walter wrote is true for char arrays (which was the main data type for storing text data in 2011, as the string class didn't exist yet.)
button = "button";
str = 'abcde';
if contains(str, button)
disp("[" + str + "] contains the string [" + button + "]")
else
disp("[" + str + "] doesn't contain the string [" + button + "]")
end
Now change the contents of the str variable and perform the same comparison.
str = 'space button';
if contains(str, button)
disp("[" + str + "] contains the string [" + button + "]")
else
disp("[" + str + "] doesn't contain the string [" + button + "]")
end
The contains function can accept two char vectors, two string arrays, two cell arrays containing char vectors, or a combination of those three types.

Accedi per commentare.


Fangjun Jiang
Fangjun Jiang il 18 Lug 2011
The following code should work. You can also use isequal(MyName,'Daniel'), strcmp(), strcmpi() etc.
MyName='Daniel';
if MyName=='Daniel'
disp('correct name');
else
disp('wrong name')
end
  2 Commenti
Jan
Jan il 18 Lug 2011
But this will *not* work: "MyName = 'Daniela'; if MyName == 'Daniel', ...", because the arrays compared by == must have the same size or one is a scalar.
Fangjun Jiang
Fangjun Jiang il 18 Lug 2011
Now I understand why the OP had errors. I personally never use == to compare strings. The error message should be pretty clear though, right?

Accedi per commentare.


NgoiKH
NgoiKH il 29 Ott 2021
str = 'abc'
if strcmp('abc',str)
expression
else
expression
end

Categorie

Scopri di più su Numeric Types in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by