using string in if statement
760 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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
0 comentarios
Respuestas (3)
Walter Roberson
el 18 de Jul. de 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 comentarios
N/A
el 26 de Mzo. de 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
el 26 de Mzo. de 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.
Fangjun Jiang
el 18 de Jul. de 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 comentarios
Jan
el 18 de Jul. de 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
el 18 de Jul. de 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?
karipuff
el 29 de Oct. de 2021
str = 'abc'
if strcmp('abc',str)
expression
else
expression
end
0 comentarios
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!