Strings cannot be compared
Mostrar comentarios más antiguos
After I enter in the strings into the textboxes, they will not be compared. The errors said 'Error using == Matrix dimensions must agree.' Can someone help me fix this problem. Here is my following code. Thank you.
function pushbutton1_Callback(hObject, eventdata, handles)
x = get(handles.edit1,'String');
y = get(handles.edit4,'String');
if(x == 'Rice')
if(y == 'Noodle')
strcmp(x, y);
set(handles.edit2,'String','Eat rice for lunch');
end
end
if(x == 'Swimming')
if(y == 'Bowling')
strcmp(x, y);
set(handles.edit2,'String','Let's go swimming');
end
end
Respuestas (2)
Walter Roberson
el 30 de En. de 2017
0 votos
Those are not strings, those are character vectors. Strings were added in R2016b. To compare character vectors that might be of different length use strcmp()
2 comentarios
Walter Roberson
el 30 de En. de 2017
I wish they had used a different word, but I am not sure what other word they might have used.
Guillaume
el 30 de En. de 2017
You seem to sort of know that you need to use strcmp for comparing string since you've put a (useless in this case) strcmp inside your if. When comparing character vectors, you must always use strcmp
if strcmp(x, 'Rice') & strcmp(y, 'Noodle')
set(handles.edit2,'String','Eat rice for lunch');
end
Or, since R2016b, you could use the new string class, where comparison is a lot more intuitive since it uses ==
if string(x) == 'Rice' & string(y) == 'Noodle'
set(handles.edit2,'String','Eat rice for lunch');
end
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!